Secure content transfer systems and methods to operate the same

ABSTRACT

Secure content transfer systems and methods to operate the same are disclosed. An example system includes a content server to encrypt content according to an encryption key, and to transfer the encrypted content, the encryption key and a license to a client that supports a digital rights management technology. The example system further includes a broadcast system headend to determine the encryption key, wherein the broadcast system headend is physically separate from the content server, and a digital rights management license server to provide the license.

FIELD OF THE DISCLOSURE

This disclosure relates generally to content transfer and, moreparticularly, to secure content transfer systems and methods to operatethe same.

BACKGROUND

The ever increasing proliferation and/or availability of media players(e.g., personal computers, digital video recorders (DVRs), home mediacenters, game playing system, etc.) creates a strong demand for systems,devices and/or methods to download video, audio and/or multimedia data,files and/or assets. Today, most media devices are customized foroperation with a single content delivery medium, for example, satellite,digital cable, Internet. Additionally, present media devices rely onoften incompatible media file formats and transmission protocols. Assuch, a device that can record, for example, a movie delivered viasatellite may be incapable of receiving a movie, even the same movie,via the Internet. Additionally, to reduce piracy, broadcast and/ordelivery systems and media players require methods to ensure secureauthorization, secure content delivery and secure content storage.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of an example disclosed contentdelivery system.

FIGS. 2 and 3 illustrate example manners of implementing the exampleheadend (HE) of FIG. 1.

FIGS. 4, 5 and 6 illustrate example manners of implementing the exampleintegrated receiver/decoder (IRD) of FIG. 1.

FIG. 7 illustrates an example encryption configuration for the examplecontent delivery system of FIG. 1.

FIGS. 8-10 are flowcharts representative of example processes that maybe carried out to implement the example headend (HE) of FIG. 1.

FIG. 11 illustrates an example manner of implementing the exampleInternet-based content server of FIG. 1.

FIG. 12 illustrates example signal processing and content delivery pathsfor the example content delivery system of FIG. 1.

FIGS. 13 and 14 illustrate example video on demand data packet gatheringmethods for the example content delivery system of FIG. 1.

FIG. 15 is a flowchart representative of an example process that may becarried out to implement the example methods illustrated in FIGS. 13 and14.

FIG. 16 illustrates an example conditional access exchange for theexample pay content delivery system of FIG. 1.

FIGS. 17A-C are flowcharts representative of example processes that maybe carried out to implement the example exchange of FIG. 16.

FIG. 18 illustrates an example conditional access exchange for theexample pay content delivery system of FIG. 1.

FIGS. 19A-C are flowcharts representative of example processes that maybe carried out to implement the example exchange of FIG. 18.

FIGS. 20 and 21 illustrate example conditional access exchanges for theexample pay content delivery system of FIG. 1.

FIGS. 22A-C and 23A-C are flowcharts representative of example processesthat may be carried out to implement the example exchange of FIGS. 20and 21, respectively.

FIGS. 24A and 24B illustrate example conditional access exchanges forthe example pay content delivery system of FIG. 1.

FIG. 25 illustrates an example encryption configuration for theintegrated receiver/decoder of FIG. 1.

FIGS. 26A-C are flowcharts representative of example processes that maybe carried out to implement the example exchange of FIGS. 24A and 24B.

FIG. 27 illustrates an example implementation of protected contentdelivery between the integrated receiver/decoder and the device of FIG.1.

FIGS. 28A and 28B illustrate an example protected content deliveryexchange for the example pay delivery network of FIG. 1.

FIGS. 29, 30 and 31 are flowcharts representative of example processesthat may be carried out to implement the example implementation of FIG.27 and/or the example exchange of FIGS. 28A and 28B.

FIGS. 32A and 32B illustrate example secure content transfers for theexample delivery system of FIG. 1.

FIGS. 33 and 34 are flowcharts representative of example processes thatmay be carried out to implement the example secure content transfers ofFIGS. 32A and 32B.

FIG. 35 is a schematic illustration of an example processor platformthat may be used and/or programmed to implement the example processes ofFIGS. 8-10, FIG. 15, FIGS. 17A-C, FIGS. 19A-C, FIGS. 22A-C, FIGS. 23A-C,FIGS. 26A-C, FIGS. 29-31 and/or FIGS. 33-34.

DETAILED DESCRIPTION

To facilitate review and understanding of the content delivery systemsand methods to operate the same disclosed herein, the present patent hasbeen organized in accordance with the following headings:

I. Content Delivery System (paragraph [0032])

II. Flexible Content Delivery (paragraph [00122])

III. Conditional Access of Broadband Content (paragraph [00142])

IV. Signed Conditional Access of Broadband Content (paragraph [00156])

V. Encrypted Conditional Access of Broadband Content (paragraph [00171])

VI. Additionally Encrypted Content Delivery (paragraph [00194])

VII. Secure Content Sharing in a Home Network (paragraph [00211])

VIII. Secure Content Transfer (paragraph [00251])

IX. Example Processor Platform (paragraph [00275])

Secure content transfer systems and methods and methods to operate thesame are disclosed. A disclosed example system includes a content serverto encrypt content according to an encryption key, and to transfer theencrypted content, the encryption key and a license to a client thatsupports a digital rights management technology. The example systemfurther includes a broadcast system headend to determine the encryptionkey, wherein the broadcast system headend is physically separate fromthe content server, and a digital rights management license server toprovide the license.

A disclosed example method includes detecting a content transferinitiation, determining an encryption secret for the initiated contenttransfer at the content server, wherein the encryption secret is knownto a geographically-separate broadcast system headend, and encryptingtransferred content based on the encryption secret. The disclosedexample method may further include receiving a content transfer licenseand forwarding the content transfer license. Another disclosed examplemethod includes receiving a content transfer authorization request,determining an encryption secret for the content transfer authorizationrequest, sending the encryption secret to a geographically-separatecontent server and sending a content transfer license request to adigital rights management license server. The disclosed example methodmay further include receiving a content transfer license and forwardingthe content transfer license. Yet another disclosed example methodincludes receiving a license renewal request for previously transferredcontent, determining an encryption secret used to encrypt the previouslytransferred content, and renewing a content transfer license based onthe determined encryption secret.

While the following disclosure is made with respect to example DIRECTV®broadcast services and systems, it should be understood that many otherdelivery systems are readily applicable to disclosed systems andmethods. Such systems include other wireless distribution systems, wiredor cable distribution systems, cable television distribution systems,Ultra High Frequency (UHF)/Very High Frequency (VHF) radio frequencysystems or other terrestrial broadcast systems (e.g., Multi-channelMulti-point Distribution System (MMDS), Local Multi-point DistributionSystem (LMDS), etc.), Internet-based distribution systems, cellulardistribution systems, power-line broadcast systems, any point-to-pointand/or multicast Internet Protocol (IP) delivery network, and fiberoptic networks. Further, the different functions collectively allocatedamong a headend (HE), integrated receiver/decoders (IRDs) and a contentdelivery network (CDN) as described below can be reallocated as desiredwithout departing from the intended scope of the present patent.

Further, while the following disclosure is made with respect to thedelivery of video (e.g., television (TV), movies, music videos, etc.),it should be understood that the systems and methods disclosed hereincould also be used for delivery of any media content type, for example,audio, music, data files, web pages, etc. Additionally, throughout thisdisclosure reference is made to data, information, programs, movies,assets, video data, etc., however, it will be readily apparent topersons of ordinary skill in the art that these terms are substantiallyequivalent in reference to the example systems and/or methods disclosedherein. As used herein, the term title will be used to refer to, forexample, a movie itself and not the name of the movie.

I. Content Delivery System

As illustrated in FIG. 1, an example direct-to-home (DTH) system 100includes a transmission source 102 (e.g., a headend (HE) 102), aplurality of media sources, one of which is shown at reference numeral103, a satellite and/or satellite relay 104 (i.e., satellite/relay 104)and a plurality of receiver stations (e.g., integrated receiver/decoders(IRDs)), one of which is shown at reference numeral 106 (i.e., IRD 106),between which wireless communications are exchanged. The wirelesscommunications may take place at any suitable frequency, such as, forexample, Ku-band frequencies. As described in detail below with respectto each portion of the example DTH system 100, information provided tothe HE 102 from the media source 103 may be transmitted, for example,via an uplink antenna 107 to the satellite/relay 104, which may be atleast one geosynchronous or geo-stationary satellite or satellite relaythat, in turn, rebroadcasts the information over broad geographicalareas on the earth that include the IRDs 106. Among other things, theexample HE 102 of FIG. 1 provides program material to the IRDs 106 andcoordinates with the IRDs 106 to offer subscribers pay-per-view (PPV)program services, including billing and associated decryption of videoprograms, as well as non-PPV programming. To receive the informationrebroadcast by the satellite/relay 104, each IRD 106 is communicativelycoupled to any variety of receive (i.e., downlink) antenna 108.

Security of assets broadcast via the satellite/relay 104 may beestablished by applying encryption to assets during content processingand/or during broadcast (i.e., broadcast encryption). For example, anasset can be encrypted based upon a codeword (CW) known to the HE 102and known to the IRDs 106 authorized to view and/or playback the asset.In the illustrated example DTH system 100, for each asset the HE 102generates a code word packet (CWP) that includes, among other things, atime stamp, and then determines the codeword (CW) for the asset bycomputing a cryptographic hash of the contents of the CWP. The CWP isalso broadcast to the IRDs 106 via the satellite/relay 104. IRDs 106authorized to view and/or playback the broadcast encrypted asset will beable to correctly determine the CW by computing a cryptographic hash ofthe contents the received CWP. If an IRD 106 is not authorized, the IRD106 will not be able to determine the correct CW that enables decryptionof the received broadcast encrypted asset. The CW may be changedperiodically (e.g., every 30 seconds) by generating and broadcasting anew CWP. In an example, a new CWP is generated by updating the timestampincluded in each CWP. Alternatively, a CWP could directly convey a CWeither in encrypted or unencrypted form. Other examples of coordinatedencryption and decryption abound, including for example, public/privatekey encryption and decryption.

In the illustrated example pay content delivery system 100,programs/information from the media source 103 may also be transmittedfrom the HE 102 to the IRDs 106 via a content delivery network (CDN)110. In the example of FIG. 1, the CDN 110 receives programs/information(e.g., an asset file containing a movie) from the HE 102 and makes theprograms/information available for download to the IRDs 106 via aterrestrial communication link and/or network, such as, for example, anInternet connection and/or an Internet based network such as, forexample, the Internet 111.

While the Internet 111 is a multipoint to multipoint communicationnetwork(s), persons of ordinary skill in the art will readily appreciatethat point-to-point communications via any variety of point-to-pointcommunication signals may be made via the Internet 111. For instance, inthe example system of FIG. 1, an IRD 106 downloads an asset file fromthe CDN 110 using any variety of file transfer and/or file transferprotocol. Such file transfers and/or file transfer protocols are widelyrecognized as point-to-point communications, point-to-pointcommunication signals and/or create point-to-point communication paths,even if transported via a multipoint to multipoint communication networksuch as the Internet 111. It will be further recognized that theInternet 111 may be used to implement any variety of broadcast systemwherein a broadcast transmitter may transmit any variety of data and/ordata packets to any number and/or variety of clients and/or receiversimultaneously. Moreover, the Internet 111 may be used to simultaneouslyprovide broadcast and point-to-point communications and/orpoint-to-point communication signals from any number of broadcasttransmitters and/or CDNs 110. Throughout the following discussions,downloading and/or transferring of asset files to an IRD 106 from a CDN110 are assumed to be performed using point-to-point communications,point-to-point communication signals and/or point-to-point techniques.As discussed above, the Internet 111 is only an example communicationsnetwork and/or communication media by which such point-to-pointcommunications may be made.

The example CDN 110 of FIG. 1 may be implemented using any of a varietyof techniques and/or devices, for instance, a plurality of Linux basedservers (e.g., content servers 112) connected via wide bandwidth (i.e.,high speed) fiber optic interconnections. Each of the content servers112 are connected to the Internet 111 thereby making it possible for theIRDs 106 to download information (e.g., a movie) from the Internet-basedcontent servers 112. In the illustrated example of FIG. 1, theInternet-based content servers 112 locally cache the informationprovided by the HE 102, and an IRD 106 requesting to downloadinformation from the CDN 110 and/or the HE 102 may be re-directed to aspecific Internet-based content server 112 for processing and/orcommunication load balancing purposes. For example, an Internet uniformresource locator (URL) assigned to a movie may connect an IRD 106 toparticular Internet-based content server 112. If the particular server112 currently has a high communication load, the server 112 mayre-direct the IRD 106 to another Internet-based content server 112 fromwhich the movie should be downloaded. In the interest of clarity andease of understanding, throughout this disclosure reference will be madeto delivering, downloading, transferring and/or receiving information,video, data, etc. via the CDN 110. However, persons of ordinary skill inthe art will readily appreciate that information is actually delivered,downloaded, transferred and/or received via one of the Internet-basedcontent servers 112 included in or associated with the CDN 110.

In the example content delivery system 100 (i.e., the example DTH system100), the CDN 110 may be operated by an external vendor (i.e., the CDN110 need not be operated by the operator of the HE 102). To downloadfiles from the CDN 110, the IRDs 106 implement, for instance, anInternet protocol (IP) stack with a defined application layer andpossibly a download application provided by the CDN vendor. In theillustrated example, file transfers are implemented using standardInternet protocols (e.g., file transfer protocol (FTP), hypertexttransfer protocol (HTTP), etc.). Each file received by an IRD 106 ischecked for completeness and integrity and, if a file is not intact,missing and/or damaged portion(s) of the file are delivered and/ordownloaded again. Alternatively, the entire file is purged from the IRD106 and/or is delivered and/or downloaded again. As described below,downloads in the illustrated example system 100 may be interrupted(e.g., paused) and then resumed, at a later time, from the point wherethe interruption occurred. In fact, as described below in Section II andin connection with FIGS. 13-15, downloads via a first medium (e.g.,satellite) may be interrupted and resumed using a second medium (e.g.,Internet).

Security of assets available via the CDN 110 may be established by thebroadcast encryption applied to an asset before the asset is provided tothe CDN 110 and, thus, the CDN 110 is not necessarily required to applyencryption and/or encoding to an asset. For example, the HE 102 mayprovide to the CDN 110 the CWP(s) for each broadcast encrypted assetprovided to the CDN 110. The CDN 110 then downloads the CWP(s) for theasset to an IRD 106 such that, if the IRD 106 is authorized to viewand/or playback the asset, the IRD 106 may correctly determine the CW(s)used to broadcast encrypt the asset. In this way, the authorization toview assets downloaded via the CDN 110 is performed in substantially thesame fashion as that performed for live and non-live assets broadcastvia the satellite/relay 104. If the security of an asset at the CDN 110is known by the CDN 110 and/or the HE 102 to be compromised, the HE 102and/or the CDN 110 make the compromised version of the file unavailable(e.g., by purging the file at the CDN 110) for download by other IRDs106 until the compromised asset is replaced by the HE 102.

In another example, the CDN 110 first verifies that an IRD 106 isauthorized to download a file before the CDN 110 allows the IRD 106 todownload the file (i.e., the CDN 110 implements a conditional accessscheme). Authorization verification may be performed using any of avariety of techniques. Example authorization methods are discussed belowin Section III-VI and in connection with FIGS. 16-26C. In a preferredembodiment, all authorized IRDs 106 utilize a shared secret or passwordthat allows access to the CDN 110. In particular, the CDN 110 canutilize the shared secret or password to verify that an IRD 106 isauthorized to download assets by, for example, comparing the value of ora value representing the shared secret sent by the IRD 106 to the CDN110 with the current shared secret or password. If the two match, thenthe IRD 106 is authorized to download the asset. The shared secret orpassword is neither asset nor IRD 106 specific and is, thus, preferablyupdated and/or changed frequently (e.g., every minute) and broadcast viathe satellite/relay 104 to all authorized IRDs 106. Further, a securityfunction (e.g., a cryptographic hash) could be applied to all or aportion of an asset's URL based on the changing shared secret orpassword. Preferably, to enhance security, an asset's scrambled URL isat least partially not human readable.

As discussed below in Section VI and in connection with FIGS. 24A-B, 25and 26A-C, the CDN 110 may, of course, alternatively or additionally,apply encryption to an asset. For example, an asset may be additionallyencrypted (i.e., super-encrypted) by the CDN 110 such that only one ofthe IRDs 106 is able to decrypt the asset. Further, the additionallyapplied encryption may implement the additional copy protectionencryption that may have been applied by an IRD 106 prior to storage ofan asset within the IRD 106.

Furthermore, the CDN 110 may determine an IRD's 106 general geographiclocation based on, for example, an IP address thereby allowing downloadsto be restricted to certain geographic areas (e.g., only domestically,only North America, etc.). Additionally or alternatively, the locationof an IRD 106 relative to the CDN 110 may be determined by measuring theround trip travel time of a ping transmitted to the IRD 106. The CDN 110may also limit the number of downloads by any IRD 106 to, for example, amaximum number of downloads per month, and may provide regular reportson download activity to the HE 102.

To facilitate backchannel communications between the IRDs 106 and the HE102, the IRDs 106 may be communicatively coupled (e.g., via an Ethernetcircuit or modem) to the HE 102 via, for example, a terrestrialcommunication link, such as a telephone line or, preferably, theInternet 111. Such communication could also be carried out via anyvariety of wireless and/or cellular return path from the IRD 106 to theHE 102 such as, for example a satellite return path via thesatellite/relay 104, a cellular communication network, etc. In general,backchannel communications and/or information sent from the HE 102 to anIRD 106 may be secured using any of a variety of techniques such as, forexample, encryption. As discussed in more detail below in SectionsIII-VI and in connection with FIGS. 16-26C, backchannel communicationsmay be used to conditionally authorize an IRD 106 to receive, decodeand/or playback content (e.g., video data) and for communicating withwebsites (e.g., websites 265 of FIGS. 1 and 2) to obtain informationtherefrom.

Example devices 114 coupled to the IRD 106 include a personal computer(PC), a portable media player, a media extender, a game playing system,a media client, etc. As illustrated in FIG. 1, the devices 114 mayconnect directly to an IRD 106 via any parallel or serial communicationsystem, such as, for example, universal serial bus (USB) connectivity,Institute of Electrical and Electronics Engineers (IEEE) 1394 (a.k.a.,Firewire), or via a home network 116. To support import and/or export ofsecure program material between devices 114 that support any variety ofDigital Rights Management (DRM) system and an IRD 106, the example HE102 of the illustrated example of FIG. 1 is communicatively coupled to aDRM license server 118. An example DRM system is implemented inaccordance with the Microsoft® Windows Media®—DRM specification. Methodsand apparatus for secure program transfer between an IRD 106 and thedevices 114 (including DRM) are discussed in more detail below inSections VIII and IX and in connection with FIGS. 27-34.

The example DTH system 100 of FIG. 1 may include a plurality ofsatellite/relays 104 to provide wide terrestrial coverage, to provideadditional channels and/or to provide additional bandwidth per channel.For example, each satellite/relay 104 may include 16 transponders toreceive program material and/or other control data from the HE 102 andto rebroadcast the program material and/or other control data the IRDs106. However, using data compression and multiplexing techniques,multiple satellites/relays 104 working together can receive andrebroadcast hundreds of audio and/or video channels.

In addition to the delivery of live content (e.g., a TV program) and/orinformation, the example HE 102 of FIG. 1 is capable of delivering,among other things, a file via the uplink antenna 107, which broadcaststhe information via the satellite/relay 104 to the IRDs 106. The filemay contain any of a variety of media content types, for instance, audioor video program data (e.g., a movie, a previously recorded TV show, amusic video, etc.), control data (e.g., software updates), data serviceinformation or web pages, software applications, or program guideinformation. In the example system 100 the delivery of a file generallyincludes: (a) binding network addresses to hardware locations, (b)announcing the file and (c) delivering the file. The binding of networkaddresses to hardware locations allows for files to be sent and receivedvia ubiquitous network addresses, for example, an IP address and IP portnumber. Announcing the delivery of the file, allows the IRDs 106 torendezvous with a file broadcast via the satellite/relay 104 at apre-determined time at the network address to download the file. Inparticular, announcements describe, in advance, when and how individualfiles will be delivered. They contain sufficient information about thesefiles to allow the IRDs 106 to determine whether or not to download oneor more of the files. To download a file, an IRD 106 joins an IPmulticast group at an IP address and pre-determined time specified in anannouncement. The IRD 106 re-assembles the data file from the datatransmitted to the IP multicast group as received via the receive (i.e.,downlink) antenna 108.

As illustrated in FIG. 1, the example pay content delivery system 100has two primary data and/or information delivery mechanisms: (a)wireless via the satellite/relay 104 and (b) via the CDN 110 (e.g.,Internet-based delivery). Content delivery may be implemented using awireless broadband connection (e.g., Institute of Electrical andElectronics Engineers (IEEE) 802.16 (a.k.a. WiMAX), 802.11b, 802.11g,etc.), a broadband wired connection (e.g., Asymmetric Digital SubscriberLine (ADSL), cable modems, etc.) or, albeit at potentially a slowerspeed, using a modem connected to a conventional public switchedtelephone network PSTN).

In the illustrated example of FIG. 1, wireless delivery via thesatellite/relay 104 may simultaneously include both files (e.g., movies,pre-recorded TV shows, software updates, asset files, etc.) and/or livecontent, data, programs and/or information. Wireless delivery via thesatellite/relay 104 offers the opportunity to deliver, for example, anumber of titles (e.g., movies, pre-recorded TV shows, etc.) tovirtually any number of customers with a single broadcast. However,because of the limited channel capacity of the satellite/relay 104, thenumber of titles (i.e., assets) that can be provided during a particulartime period is restricted.

In contrast, Internet-based delivery via the CDN 110 can support a largenumber of titles, each of which may have a narrower target audience.Further, Internet-based delivery is point-to-point (e.g., from anInternet-based content server 112 to an IRD 106) thereby allowing eachuser of an IRD 106 to individually select titles. In the illustratedexample of FIG. 1, allocation of a title to satellite and/orInternet-based delivery depends upon a target audience size and may beadjusted over time. For instance, a title having high demand (i.e.,large initial audience) may initially be broadcast via thesatellite/relay 104, then, over time, the title may be made availablefor download via the CDN 110 when the size of the target audience or thedemand for the title is smaller. As discussed below in Section II and inconnection with FIGS. 12-15, a title may simultaneously be broadcast viathe satellite/relay 104 and be made available for download from the CDN110 via the Internet 111.

In the example DTH system 100, each asset (e.g., program, title, TVprogram, etc.) is pre-packetized and, optionally, pre-encrypted and thenstored as a data file (i.e., an asset file). Subsequently, the assetfile may be broadcast via the satellite/relay 104 and/or sent to the CDN110 for download via the CDN 110 (i.e., Internet-based delivery). Inparticular, if the data file is broadcast via the satellite/relay 104,the data file forms at least one payload of a resultant satellitesignal. Likewise, if the data file is available for download via the CDN110, the data file forms at least one payload of a resultant Internetsignal.

It will be readily apparent to persons of ordinary skill in the art thateven though the least one payload of a resultant signal includes thedata file regardless of broadcast technique (e.g., satellite orInternet), how the file is physically transmitted may differ. Inparticular, transmission of data via a transmission medium (e.g.,satellite, Internet, etc.) comprises operations that are: (a)transmission medium independent and b) transmission medium dependent.For example, transmission protocols (e.g., transmission control protocol(TCP)/IP, user datagram protocol (UDP), encapsulation, etc.) and/ormodulation techniques (e.g., quadrature amplitude modulation (QAM),forward error correction (FEC) employed, etc.) used to transmit a filevia Internet signals (e.g., over the Internet 111) may differ from thoseused via satellite (e.g., the satellite/relay 104). In other words,transmission protocols and/or modulation techniques are specific tophysical communication paths, that is, they are dependent upon thephysical media and/or transmission medium used to communicate the data.However, the content (e.g., a file representing a title) transported byany given transmission protocol and/or modulation is agnostic of thetransmission protocol and/or modulation, that is, the content istransmission medium independent.

In the illustrated example of FIG. 1, the same pre-packetized and,optionally, pre-encrypted, content data file that is broadcast viasatellite may be available for download via Internet, and how the assetis stored, decoded and/or played back by the IRD 106 is independent ofwhether the program was received by the IRD 106 via satellite orInternet. Further, because the example HE 102 of FIG. 1 broadcasts alive program and a non-live program (e.g., a movie) by applying the sameencoding, packetization, encryption, etc., how a program (live ornon-live) is stored, decoded and/or played back by the IRD 106 is alsoindependent of whether the program is live or not. Thus, an IRD 106 mayhandle the processing of content, programs and/or titles independent ofthe source(s) and/or type(s) of the content, programs and/or titles. Inparticular, example delivery configurations and signal processing forthe example content delivery system of FIG. 1 are discussed in detailbelow in connection with FIG. 12.

As described below in conjunction with FIGS. 4, 5 and 6, the IRD 106 maybe one of any variety of devices, for example, a set-top box, a homemedia server, a home media center (HMC), a personal computer (PC) havinga receiver card installed therein, etc. A display device (e.g., thedisplay 420 of FIG. 4), such as, for example, a television set or acomputer monitor, is coupled to the IRD 106 for displaying and/orplayback of received programming. Additionally, an IRD 106 may include arecorder (e.g., the recorder 415 of FIG. 4) and/or any variety ofcircuits, modules and/or devices collectively implementing recorderfunctionality used to record content received by the IRD 106. Therecorder 415 may be, for example, a device capable of recordinginformation on, for instance, analog media such as videotape or computerreadable digital media such as a hard disk drive (HDD) (e.g., HDD 425 ofFIGS. 4-6), a digital versatile disc (DVD), a compact disc (CD) and/orany other suitable media. Further, an IRD 106 may connect to theInternet 111 via any of a variety of technologies, for instance, avoice-band and/or integrated services digital network (ISDN) modemconnected to a conventional PSTN, a wireless broadband connection (e.g.,IEEE 802.11b, 802.11g, etc.), a broadband wired connection (e.g., ADSL,cable modems, etc.), a wired Ethernet connection (e.g., local areanetwork (LAN), wide area network (WAN), etc.), a leased transmissionfacility (e.g., a digital signal level 1 circuit (a.k.a. a DS1), afractional-DS1, etc.), etc.

FIG. 2 illustrates an example manner of implementing the HE 102 ofFIG. 1. The example HE 102 of FIG. 2 includes a broadcast system 205, amedia handler 206 and a plurality of media sources that provide content,data and/or information (e.g., program sources 208, a control datasource 210, a data service source 212, and one or more program guidedata sources 214). As illustrated in FIG. 2, the data sources 210, 212and/or 214 may be implemented partially or wholly by the HE 102depending upon an implementation of the HE 102. The example broadcastsystem 205 and the uplink antenna 107 form a satellite broadcasttransmitter. An example media handler 206 is discussed in more detailbelow in connection with FIG. 3. In one example, information (e.g.,files, bitstreams, etc.) from one or more of the sources 208-214 ispassed by the media handler 206 to an encoder 230. In the illustratedexample of FIG. 2, the encoder 230 encodes the data according to theCableLabs® Video-on-Demand (VoD) encoding specificationMD-SP-VOD-CEP-I01-040107 (i.e., performs asset encoding). The encodeddata is then packetized into a stream of data packets by a packetizer235 that also attaches a header to each data packet to facilitateidentification of the contents of the data packet such as, for example,a sequence number that identifies each data packet's location within thestream of data packets (i.e., a bitstream). The header also includes aprogram identifier (PID) (e.g., a service channel identifier (SCID))that identifies the program to which the data packet belongs.

The stream of data packets (i.e., a bitstream) is then broadcastencrypted by an encrypter 240 using, for example, the well-knownAdvanced Encryption Standard (AES) or the well-known Data EncryptionStandard (DES). In an example, only the payload portion of the datapackets are encrypted thereby allowing an IRD 106 to filter, routeand/or sort received broadcast encrypted data packets without having tofirst decrypt the encrypted data packets. To facilitate broadcast of theencrypted bitstream, the encrypted bitstream passes from the encrypter240 to a multiplexer and modulator 245 that, using any of a variety oftechniques, multiplexes any number of encrypted bitstreams together andthen modulates a carrier wave with the multiplexed encrypted bitstreams.The modulated carrier wave is then passed to any variety of uplinkfrequency converter and radio frequency (RF) amplifier 250, which, usingany of a variety of techniques, converts the modulated carrier wave to afrequency band suitable for reception by the satellite/relay 104 andapplies appropriate RF amplification. The up-converted and amplifiedsignal is then routed from the uplink frequency converter 250 to theuplink (i.e., transmit) antenna 107 where it is transmitted towards thesatellite/relay 104.

While a particular broadcast system 205 is illustrated in FIG. 2,persons of ordinary skill in the art will readily appreciated thatbroadcast systems may be implemented using any of a variety of otherand/or additional devices, components, circuits, modules, etc. Further,the devices, components, circuits, modules, elements, etc. illustratedin FIG. 2 may be combined, re-arranged, eliminated and/or implemented inany of a variety of ways. For example, multiplexing of the packetizeddata may be performed prior to encryption of the data packets by theexample encrypter 240. In such an example configuration, the encrypter240 is configurable to selectively encrypt data packets based upon whichdata packet stream (e.g., media source) they are associated with.

As discussed above, content, data and/or information provided by thesources 208-214 may be live, real time and/or non-real time. Forexample, a first program source 208 may provide a live TV program whilea second program source 208 provides a previously recorded title (e.g.,a movie, a music video, etc.). In the illustrated example of FIG. 2, ifa movie provided by the second program source 208 is pre-encoded,pre-packetized and pre-encrypted, the movie may be provided by the mediahandler 206 directly to the example multiplexer/modulator 245. Inparticular, the example broadcast system 205 of FIG. 2 may beimplemented and/or operated to broadcast both live and/or real time dataand/or information and non-real time data and/or information. In theillustrated example of FIG. 2, the operation and/or implementation ofthe multiplexer/modulator 245 and the uplink frequency converter/RFamplifier 250 are agnostic to whether the broadcast represents real timeor non-real time data and/or information. Further, the format and/orstructure of the payload of the signal being broadcast toward thesatellite/relay 104 by the broadcast system 205 and the transmit (i.e.,uplink) antenna 107 and the received by the IRD 106 does not depend onwhether the data and/or information is real time or non-real time.Moreover, an output of, for example, the example packetizer 235 and/orthe example encrypter 240 of FIG. 2 may be captured and/or recorded bythe media handler 206 to, for example, an asset file. Like other assetfiles created by the media handler 206, the example media handler 206may provide such asset files to the CDN 110 for transfer to an IRD 106via the Internet 111 and/or broadcast the asset file via thesatellite/relay 104. In this way, the broadcast system 205 may implementfunctionality similar and/or identical to the example video transportprocessing system (VTPS) 320 discussed below in connection with FIG. 3.

As discussed above in connection with FIG. 1, the example HE 102 mayprovide programs (e.g., movies, pre-recorded TV shows, etc.) to the CDN110 for delivery to an IRD 106. In particular, the example media handler206 of FIG. 2 may provide a pre-encoded, pre-packetized and, optionally,pre-encrypted bitstream to the CDN 110. Further, in the illustratedexample HE 102 of FIG. 2 and/or, more generally, the example DTH system100 of FIG. 1, how a title is pre-encoded, pre-packetized and,optionally, pre-encrypted does not depend upon whether the title will bebroadcast via a satellite/relay 104 or made available for download viathe CDN 110.

The program sources 208 receive video and audio programming from anumber of sources, including satellites, terrestrial fiber optics,cable, or tape. The video and audio programming may include, but is notlimited to, television programming, movies, sporting events, news, musicor any other desirable content. The program sources 208 may provide thevideo and audio programming in the form of, for example, a bitstream ora file.

The control data source 210 passes control data to the media handler 206such as, for example, data representative of a list of SCIDs to be usedduring the encoding process, or any other suitable information.

The data service source 212 receives data service information and webpages made up of data files, text files, graphics, audio, video,software, etc. Such information may be provided via a network 260. Inpractice, the network 260 may be the Internet 111, a local area network(LAN), a wide area network (WAN) or a PSTN. The information receivedfrom various sources is compiled by the data service source 212 andprovided to the media handler 206. For example, the data service source212 may request and receive information from one or more websites 265.The information from the websites 265 may be related to the programinformation provided to the media handler 206 by the program sources208, thereby providing additional data related to programming contentthat may be displayed to a user at an IRD 106.

The program guide data source 214 provides information that the IRDs 106use to generate and display a program guide to a user, wherein theprogram guide may be a grid guide that informs the user of particularprograms that are available on particular channels at particular times.The program guide also includes information that an IRD 106 uses toassemble programming for display to a user. For example, if the userdesires to watch a baseball game on his or her IRD 106, the user willtune to a channel on which the game is offered. The program guidecontains information required by an IRD 106 to tune, demodulate,demultiplex, decrypt, depacketize and/or decode selected programs.

FIG. 3 illustrates another example manner of implementing the HE 102 ofFIG. 1 and, in particular, an example manner of implementing the mediahandler 206 of FIG. 2. While a particular HE 102 and media handler 206are illustrated in FIG. 3, persons of ordinary skill in the art willreadily appreciated that head ends and/or media handlers may beimplemented using any of a variety of other and/or additional devices,components, circuits, modules, etc. Further, the devices, components,circuits, modules, elements, etc. illustrated in FIG. 3 may be combined,re-arranged, eliminated and/or implemented in any of a variety of ways.The example HE 102 of FIG. 3 receives live or non-live video content(e.g., movies, TV shows, sporting events, etc.) from a plurality ofmedia sources 305. The media sources 305 may be, for example, any of thesources 208-214 discussed above in connection with FIG. 2. The mediasources 305 deliver content to the HE 102 via any of a variety oftechniques, for example, satellite, tape, CD, DVD, file transfer, etc.For instance, a media source 305 first performs encoding and packagingof an asset and then transmits the packaged asset via satellite to theHE 102. The HE 102 receives the packaged asset and checks to ensure theasset was delivered in its entirety without corruption. If the asset wasnot correctly received, the HE 102 can request re-transmission. To storethe received assets (packaged or not), the example media handler 206 ofFIG. 3 includes a media library 310. As illustrated in FIG. 3, liveassets (e.g., a live TV program) can be routed directly from a mediasource 305 to the broadcast system 205 for broadcast via thesatellite/relay 104 to the IRDs 106. Live assets may, alternatively oradditionally, be recorded in a media library 310 and then converted to apre-encoded, pre-packetized and, optionally, pre-encrypted distributionfiles as discussed below.

In the illustrated example HE 102 of FIG. 3 and the example pay contentdelivery system 100 of FIG. 1, video content (i.e., video assets) areencoded and packaged according to the CableLabs specification for VoDcontent. To pre-encode and pre-package received video assets that arenot received pre-encoded and pre-packaged according to the CableLabsspecification for VoD content, the example media handler 206 of FIG. 3includes an encoder/converter 312. The example encoder/converter 312 ofFIG. 3 either pre-encodes an un-encoded received asset orconverts/re-encodes an asset that is encoded based on anotherspecification and/or standard. For example, an asset received via tapewill require pre-encoding and pre-packaging. To store the properlypre-encoded and pre-packaged assets, the illustrated example mediahandler 206 includes a storage server 314.

To pre-packetize the pre-encoded asset to one of any variety of formatssuitable for distribution (e.g., an asset file) and, optionally, topre-encrypt the asset file, the example media handler 206 of FIG. 3includes a content transport processing system such as, for example, forvideo content the VTPS 320 comprising a packetizer 322 and an encrypter324. Of course, other types of content transport processing systems maybe included for other types of content data. Additionally oralternatively, a single content transport processing system capable toprocess multiple types of content data may be implemented. Among otherthings, the example packetizer 322 of FIG. 3 pre-packetizes thepre-encoded asset. The example encrypter 324 of FIG. 3 pre-encrypts thepre-packetized stream according to, for example, either the AES or theDES standard. The codeword (CW) used to broadcast encrypt thepre-packetized asset is determined, as described above, by a conditionalaccess system (CAS) 350. In the illustrated example HE 102 of FIGS. 1and 3, an asset file contains pre-encoded pre-packetized and,optionally, pre-encrypted video data. Additionally or alternatively, asdiscussed above in connection with FIG. 2, outputs of the broadcastsystem 205 (e.g., an output of the packetizer 235 and/or the encrypter240) may be used to create pre-packetized and/or pre-encoded assets. Forexample, such outputs of the broadcast system 205 may be used to, forexample, create asset files for live programs currently being broadcastby the HE 102. That is, the broadcast system 205 may be used, inaddition to broadcast live and non-live programs, to implement a VTPS,VTPS functionality and/or functionality similar to the VTPS 320. Theexample media handler 206 can handle asset files created by the VTPS 320identically to those created from outputs of the broadcast system 205.To store asset files, the example media handler 206 of FIG. 3 includes aservice management and authoring system (SMA) 330.

It will be readily apparent to persons of ordinary skill in the art thatcontent processing, that is, the processes of pre-encoding,pre-packetizing and, optionally, pre-encrypting assets to form assetfiles may be performed in non-real time. Preferably, content processingis implemented as an automated workflow controlled by a traffic andscheduling system (TSS) 315. In particular, the TSS 315 can schedulecontent processing for a plurality of received assets based upon adesired program lineup to be offered by the example DTH system 100 ofFIG. 1. For example, a live TV program for which a high demand forreruns might be expected could be assigned a high priority for contentprocessing.

In the illustrated example of FIG. 3, the SMA 330 implements a store andforward system. That is the SMA 330 stores all asset files (i.e.,distribution files) until they are scheduled to be broadcast viasatellite and/or scheduled to be transferred to the CDN 110. In theexample HE 102 of FIGS. 1-3, an asset is stored using the samedistribution file format regardless of how the asset is to be deliveredto the IRDs 106. This enables the same assets to be forwarded to theIRDs 106 via the satellite/relay 104 or via the CDN 110. To control theSMA 330 and to store the distribution files, the example SMA 330includes a controller 334 and a repository 332, respectively. In theillustrated example of FIG. 3, the SMA 330 is controlled by a trafficschedule determined by the TSS 315, that is, the controller 334 operatesresponsive to commands received from the TSS 315.

For satellite distribution, the SMA 330, as instructed by the TSS 315,sends an asset file to the broadcast system 205 at a scheduled broadcasttime. As described above in connection with FIG. 2, the broadcast system205 transmits the asset file via the transmit (i.e., uplink) antenna 107and the satellite/relay 104. In particular, since the asset file isalready pre-encoded, pre-packetized and, optionally, pre-encrypted, theasset file is only passed through the multiplexer/modulator 245 and theuplink frequency converter/RF amplifier 250 of the example broadcastsystem 205 of FIG. 2. As also described above, live assets may beencoded, packetized and broadcast encrypted by the broadcast system 205and will be multiplexed, modulated, up-converted and amplified using thesame techniques as that applied to an asset file. In particular, a liveprogram that is broadcast live via the broadcast system 205 results in asatellite signal that is substantially similar to a satellite signalresulting from broadcast of an asset file created from the live program.

In the illustrated example of FIG. 3, video asset files are sent to thebroadcast system 205 as a pre-encoded, pre-packetized and, optionally,pre-encrypted bitstream containing video as well as all audio andconditional access (CA) data in a single file. Video and audio areassigned default SCIDs/PIDs during content processing. The broadcastsystem 205 may, thus, override the default SCID/PID assignments and mayre-stamp SCID/PID data packet header entries with the correct valuesbased on the particular satellite transponder allocated to the asset.

For Internet distribution, the SMA 330, as instructed by the TSS 315,sends an asset file to the CDN 110 at a scheduled time via a dedicatedprivate access line (e.g., a digital signal level 3 (DS-3) communicationlink, a optical carrier level 3 (OC-3) fiber optic link, etc.) or asecure virtual private network (VPN) link. In the illustrated examplesof FIGS. 1-3, the HE 102 sends each asset file to the CDN 110 once andall subsequent copying and distribution of the asset via the Internet111 is performed by the CDN 110. Asset files received by the CDN 110 areverified to ensure they are received in their entirety and with fullintegrity. The link between the HE 102 and the CDN 110 has a finitebandwidth and, thus, the TSS 315 schedules delivery of assets to the CDN110 to ensure that assets are available via the CDN 110 as advertised,for example, in program guide information.

To provide program guide information to the IRDs 106, the example HE 102of FIG. 3 includes the advanced program guide (APG) system 335. The APGsystem 335 creates and/or updates APG data that is broadcast to the IRDs106 via the broadcast system 205 (i.e., via the satellite/relay 104).Example APG data lists which assets are being broadcast by the HE 102and are, thus, available for recording by the IRDs 106. For the listedassets, the APG data specifies a starting time, a duration, a networkaddress, a satellite transponder identifier and a SCID/PID set. Forassets available for download via the CDN 110, the APG, additionally oralternatively, includes an Internet URL from which an IRD 106 maydownload the asset.

To schedule content processing, APG data updates as well as contentdelivery via the broadcast system 205 and/or the CDN 110, the example HE102 of FIG. 3 includes the TSS 315. For each asset the following dates(i.e., date and time) may be controlled and/or determined by the TSS315: (a) expected arrival date, (b) start of content processing, (c) endof content processing, (d) APG announcement date (i.e., from which datethe asset will be visible to a customer in the APG), (e) broadcast date,(e) CDN publish date, (f) SMA purge date (i.e., date asset is removedfrom repository 332), (g) end of availability of purchase, (h) end ofviewing (i.e., date of purge from an IRD 106), and (i) CDN 110 purgedate. The TSS 315 may control other dates as well.

In the example HE 102 of FIG. 3, each live asset is assigned to abroadcast operations control (BOC) channel by the TSS 315 that denotesthe physical location of a program (e.g., a satellite transponder).Likewise, delivery of asset files (i.e., distribution files) via thesatellite/relay 104 are also organized by BOC channel. In theillustrated examples of FIGS. 1 and 3, the link between the HE 102 andthe CDN 110 is broken up into sub-channels each of which is assigned aBOC channel number. By using BOC channels for both live and non-liveassets (even those being broadcast via the CDN 110), the TSS 315 canschedule broadcast and/or delivery of all assets in the same fashion. Inparticular, the delivery of assets to the CDN 110 is scheduled by theTSS 315 like the broadcast of an asset via the satellite/relay 104(i.e., by selecting a BOC channel and time). If an example systemincludes more than one CDN 110, then the CDNs 110 could be assigneddistinct BOC channel numbers making the implementation of the TSS 315easily extendable.

To facilitate backchannel communications between the IRDs 106 and the HE102, the illustrated example HE 102 includes any of a variety ofbroadband interfaces 340 that communicatively couples the HE 102 to theIRDs 106 via the Internet 111. As described above, the broadbandinterface 340 using any of a variety of techniques may realize securecommunications between the HE 102 and the IRDs 106. Alternatively, thebroadband interface 340 provides any of a variety of modem interfaces toa PSTN. The broadband interface 340 also facilitates interaction of theIRDs 106 with a web interface 345 and/or the conditional access system(CAS) 350. To allow users of the IRDs 106 to subscribe to services,purchase titles, change preferences, etc., the example HE 102 of FIG. 3includes the web interface 345. In the illustrated example, the webinterface 345 using any of a variety of techniques presents one or moreweb based interfaces via the Internet 111 and/or any variety of wirelesslink such as, for example, via the satellite/relay 104 and receives userselections.

In the example DTH system 100 of FIG. 1, users of the IRDs 106 may berestricted from downloading assets from the CDN 110 and/or from decodingor playing back assets received (either via the satellite/relay 104 orthe CDN 110) and/or stored by an IRD 106 (i.e., conditional access tocontent). To authorize an IRD 106 for downloading, decoding and/orplayback of an asset, the example HE 102 of FIG. 3 includes the CAS 350.In an example, the CAS 350 generates and broadcasts CWP(s) anddetermines the CW(s) used to broadcast encrypt each asset. In anotherexample, the CAS 350 receives an authorization request from an IRD 106via the Internet 111 and the broadband interface 340, and provides anauthorization response to the IRD 106 via the broadcast system 205 andthe satellite/relay 104. Example interactions between the HE 102, theCAS 350, the IRDs 106 and the CDN 110 and/or methods to conditionallyauthorize downloading, decoding and/or playback of assets are discussedin more detail in Sections III-VI and in connection with FIGS. 16-26C.

In the illustrated example of FIG. 1, users of the IRDs 106 are chargedfor subscription services and/or asset downloads (e.g., PPV TV) and,thus, the example HE 102 of FIG. 3 includes a billing system 355 totrack and/or bill subscribers for services provided by the example paycontent delivery system 100. For example, the billing system 355 recordsthat a user has been authorized to download a movie and once the moviehas been successfully downloaded the user is billed for the movie.Alternatively, the user may not be billed unless the movie has beenviewed.

FIG. 4 illustrates an example manner of implementing the receive antenna108 and the IRD 106 of FIG. 1. In operation, the receive antenna 108(i.e., downlink antenna 108) receives signals conveying a modulatedmultiplexed bitstream from the satellite/relay 104. Within the receiveantenna 108, the signals are coupled from a reflector and feed 404 to alow-noise block (LNB) 405, which amplifies and frequency downconvertsthe received signals. The LNB output is then provided to a receiver 410,which receives, demodulates, de-packetizes, de-multiplexes, decrypts anddecodes the received signal to provide audio and video signals to adisplay device 420 and/or a recorder 415. As illustrated in FIG. 4, therecorder 415 may be implemented separately from and/or within the IRD106. The receiver 410 is responsive to user inputs to, for example, tuneto a particular program.

To store received and/or recorded programs and/or assets, the exampleIRD 106 of FIG. 4 includes any of a variety of storage device 425 (e.g.,a HDD 425). The HDD 425 is used to store the packetized assets and/orprograms received via the satellite/relay 104 and/or the CDN 110. Inparticular, as discussed below in connection with FIG. 12, the packetsstored on the HDD 425 are the same encoded and, optionally, encryptedpackets created by the HE 102 and transmitted via the satellite/relay104 and/or made available for download via the CDN 110. To communicatewith any of a variety of clients, media players, etc., the illustratedexample IRD 106 includes one or more digital interfaces 430 (e.g., USB,serial port, Firewire, etc.). To communicatively couple the example IRD106 to, for instance, the Internet 111 and/or the home network 116, theexample IRD 106 includes a network interface 435 that implements, forexample, an Ethernet interface.

FIG. 5 is an illustration of another example manner of implementing theIRD 106 of FIG. 1. In general, circuitry, modules and/or componentsinside the IRD 106 receive the L-band RF signals received from thesatellite/relay 104 via the LNB 405 (FIG. 4) and convert the signalsback into an original digital bitstream. Decoding circuitry, modulesand/or components receive the original bitstream and perform video/audioprocessing operations such as de-multiplexing and decompression (i.e.,decoding). One or more processor(s), microprocessor(s) or centralprocessing unit(s) (CPU) 507 of a controller module 505 controls theoverall operation of the example IRD 106, including the selection ofparameters, the set-up and control of components, channel selection, andmany other functions of the example IRD 106 of FIG. 5.

Specifically, the example IRD 106 of FIG. 5 includes the controllermodule 505, front end modules 510, a transport module 520, a displaymodule 530, an audio module 535, and an audio/video (A/V) output module540, an interface (I/F) module 550, a front panel module 560, a splitter570, 8VSB tuners 575, a power supply 590 and the HDD 425. As furthershown in FIG. 5, a 27 megahertz (MHz) clock signal generator 580 is alsoprovided. The clock generator 580 generates a clock signal that iscoupled to various components of the IRD 106 and may befrequency-calibrated by a signal received from the transport module 520.

The example front end modules 510 of FIG. 5 receive the L-band RFsignals received from the satellite/relay 104 via the LNB 405 (FIG. 4)and converts the signals back into the original digital bitstream (i.e.,stream of encoded and, optionally, encrypted data packets). Among otherthings, the front end modules 510 implement a tuner, a demodulator andan FEC decoder. Likewise, the splitter 570 of the illustrated examplemay be coupled to an antenna or a cable or terrestrial broadcast systemsuch as, for example, an analog or digital cable television broadcastsystem (not shown) to receive information content. Signals from thesplitter 570 are coupled to the tuners 575 that implement an AdvancedTelevision Systems Committee (ATSC)/National Television System Committee(NTSC) tuner, an NTSC decoder and a vestigial side band (VSB)demodulator to convert received information into a digital bitstream.The front end modules 510, the splitter 570, and the 8VSB tuners 575 arecontrolled by the controller module 505 and may be implemented using anyof a variety of well known techniques, devices, circuits and/orcomponents.

The transport module 520 receives the transport stream of digitized datapackets containing video, audio, data, scheduling information, datafiles, and other information. As described above, the data packetscontain identifying headers. To route and/or connect data packets and/orbitstreams between various components and/or devices of the transportmodule 520, the example transport module 520 includes a stream manager521. In one example, a channel de-multiplexer 522, under control of thecontroller module 505, filters out packets that are not currently ofinterest, and the stream manager 521 routes the data packets of interestthrough a DES decryption circuit 523. In the example DTH system 100 ofFIG. 1, access control is implemented by any of a variety of techniques.For example, access control may be achieved by broadcast encrypting anasset at the HE 102 based on a CW determined and/or selected by the CAS350 (FIG. 3), and sending information (e.g., a CWP) containing a CW orcontaining information from which an IRD 106 may determine the CW suchthat the asset may be correctly decrypted by the DES decryption circuit523. In the illustrated example of FIG. 5, determination of a CW from aCWP is performed by a smart card (not shown) based upon, for example,functionality (e.g., a cryptographic hash function) implemented by thesmart card (not shown) and/or security data stored in the smart card andaccessed via a smart card reader 562 associated with the front panelmodule 560. In the illustrated example of FIG. 5, secure insertion ofthe CW from the smart card into the DES decryption circuitry is achievedby way of a security chip (SC) 524 which receives an encrypted versionof the CW from the smart card. Alternatively, data packets encrypted bythe HE 102 using AES encryption may be decrypted using an AES decryptioncircuit 525.

To allow additional encryption to be applied to received broadcastencrypted data packets prior to storage on the HDD 425, the example IRD106 of FIG. 5 includes an AES encryption circuit 527 that optionallyapplies additional encryption to the received encrypted data packets. Ingeneral, the received encrypted data packets are the same encryptedpackets created by the HE 102 and transmitted via the satellite/relay104 and/or made available for download via the CDN 110. To decodeadditionally encrypted data stored on the HDD 425, the illustratedexample includes a second AES decryption circuit 528. Alternatively, theAES decryption circuit 525 could be multiplexed to perform thedecrypting operations implemented by the decrypters 525 and 528. Anexample encryption configuration is discussed below in connection withFIG. 6. The use of additional decryption for use in the reception ofadditionally encrypted assets from a CDN 110 are discussed in Section VIand in connection with FIGS. 24A-B, 25 and 26A-C. Additionally, asdiscussed in Sections VII and VIII and in connection with FIGS. 27-34,the additional encryption and/or decryption may also be used toimplement secure delivery of assets between the IRD 106 and clients 114and/or media players 114 communicatively coupled to the example IRD 106.

The authorized and decrypted data of interest, which now consists of,for example, encoded audio/video data, are, for example, forwarded todecoder dynamic random access memory (DRAM) for buffering (not shown).The display module 530 and/or the audio module 535, using any of avariety of techniques and/or methods, decode the received encodedaudio/video data, as needed. For example, a video decoder 532 reads theencoded video data, parses it, obtains quantized frequency domaincoefficients, and then performs an inverse quantization, an inversediscrete cosine transform (DCT) and motion compensation. At this point,an image is reconstructed in the spatial domain and stored in a framebuffer (not shown). At a later time, the image is read out of the framebuffer and passed to an encoder 534. Alternatively or additionally, thedisplay module 530 may generate graphics that allow, for example, anelectronic program guide to be displayed. The video encoder 534 mayconvert the digital video signals to, for example, an analog signalaccording to the NTSC standard or to another desired output protocol(e.g., a protocol defined by the ATSC), thereby allowing video to bereceived by the display device 420 (FIG. 4) via the A/V output module540. Alternatively, received data may be used by the controller module505 to, for instance, configure the receiver (e.g., software downloadsand/or updates), present program guide information, etc.

To communicatively couple the example IRD 106 to a HE 102 and/or a CDN110, the illustrated example interface module 550 includes a networkinterface 435 and/or a conventional modem 551. In the example of FIG. 5,the network interface 435 implements an Ethernet interface and couplesthe example IRD 106 to a HE 102 and a CDN 110 via the Internet 111(FIG. 1) and optionally to one more clients 114 and/or media players 114via a home network 116. For example, the network interface 435 may beconnected to a router (not shown) that provides connectivity between theIRD 106 and devices 114 connected to the home network 116 and provides abridge to a broadband modem (e.g., an ADSL modem) (not shown) thatconnects the IRD 106 to the Internet 111. The IRD 106 may, additionallyor alternatively, be connected to clients 114 and/or media players 114via a USB interface 552, a serial port interface 553, a Firewireinterface (not shown), etc. that also may be implemented by theinterface module 550.

To receive inputs and provide outputs, the illustrated example IRD 106includes the front panel module 560 that provides an interface betweenthe controller module 505 and a plurality of input and/or output devices(e.g., devices 562, 564, 566 and 568). To read and/or write data to anyof a variety of smart cards, the example IRD 106 includes the smart cardreader 562. To receive user inputs and/or selections from a remotecontrol, the IRD 106 includes an infrared (IR) receiver 564. Inaddition, support for a RF remote control, e.g. that uses UHFfrequencies instead of IR frequencies, may be offered through a RFreceiver module (not shown). A user may also provide inputs and/orcontrol the example IRD 106 via one or more buttons (e.g., power on/off,play, etc.) 566 physically located on the IRD 106. To provide userprompts, status, date, time, etc. information to a user, the illustratedexample includes any of a variety of display devices 568, for example, aliquid crystal display (LCD).

The controller module 505 may be implemented using any of a variety oftechniques, devices, components and/or circuits. An example controllermodule 505 includes one of any variety of microprocessors, processors,controllers, CPUs 507, an electronically erasable programmable read onlymemory (EEPROM) 508 and flash memory 509 to store, for example, machinereadable instructions that may be executed by the CPU 507, a staticrandom access memory (SRAM) 506 to store data and/or variables usedand/or accessed by the CPU 507, or other memory.

Reception of content (i.e., assets) by downloading them from a CDN 110may be performed by the example IRD 106 of FIG. 5 using any of a varietyof techniques. For example, reception and/or recording of an asset maybe performed via an IP socket. In particular, based on information fromAPG data (e.g., an Internet URL), a connection to the CDN 110 isestablished over which a stream of IP packets may be received. Thestream of packets is processed by an IP stack executing, for example, onthe CPU 507 and/or the network interface 435 and then passed onto thetransport module 520. The transport module 520 processes the data in asubstantially similar manner as data received from the front end modules510 are processed.

Assets and/or programs received via the satellite/relay 104 include aprogram clock reference (PCR) that may be used by the transport module520, the display module 530 and/or the audio module 535 during playbackof the received assets and/or programs. Assets and/or programs receivedfrom a CDN 110 do not include a PCR and, thus, the IRD 106 assumes thePCR is running exactly at 27 MHz and therefore runs its internal clock580 at its default frequency. Like assets and/or programs received viathe satellite/relay 104, for assets received via the CDN 110, thedisplay module 530 and/or the audio module 535 use presentation timestamps (PTS) to maintain appropriate frame rates and to establishedaudio and video synchronization. In particular, the IRD 106 uses thefirst PTS encountered to set the phase of the clock 580.

FIG. 6 is a detailed illustration of a third example IRD 106 having apersonal computer (PC) based architecture, it being understood that theexample IRD 106 of FIG. 6 could be used in the example DTH system 100 ofFIG. 1. As shown, the example IRD 106 of FIG. 6, which receives an inputfrom the LNB 405, includes any variety of satellite receiver card(s)602, any variety of audio/video card(s) 604 and any variety of networkcard(s) 606, each of which may be coupled to a motherboard 608. Thevideo/audio decoder card 620 could, of course, be integrated with thesatellite receiver card 602 and the network card 606 may be integratedinto the motherboard 608. The IRD 106 also includes any variety of smartcard reader(s) 562 and any variety of HDD(s) 425 that may be coupled tothe motherboard 608 or integrated with the cards 602, 604 and/or 606.

In one example, the satellite receiver card 602 includes a front endmodule 510 and a transport module 520. The implementation and/orinterconnection of these devices are substantially the same as shown anddescribed in conjunction with FIG. 5 and, thus, in the interest ofbrevity will not be repeated here. The interested reader is referred tothe discussion above in connection with FIG. 5.

The audio/video decoder card 604 includes an audio/video decoder 630, anoptional NTSC and/or ATSC output driver 632 and a video graphics adapter(VGA) output driver 634. As described below in detail, the satellitereceiver card 602 can receive and the audio/video card 604 can decodethe signal received from the LNB 405.

In operation, an incoming signal from the LNB 405 is received by thesatellite receiver card 602 and passed through a series of initialprocessing operations including the front end module 510 and thetransport module 520. Although the functional circuits within thetransport module 520 are not illustrated, they may, for example, beidentical to those described above in connection with FIG. 5. Forexample, the transport module 520 receives the transport stream orbitstream of digitized data packets containing video, audio, schedulinginformation, and other data. The digital packet information containsidentifying headers as part of its overhead data. Under control of amain processor/controller (typically located on the motherboard 608),the transport module 520 filters out received data packets that are notcurrently of interest. Received data packets that are of interest arerouted through decryption within the transport module 510. Received datapackets may also be additionally encrypted and stored, for example, bythe motherboard 608 on the HDD 425.

The transport module 510 passes the data to the audio/video decoder 630of the video/audio decoder card 604. The authorized data of interest arestored in system RAM (not shown) for buffering, and the video/audiodecoder 630 retrieves the data from RAM as needed. For video data, theaudio/video decoder 630 reads in the encoded video data from its RAM,and, using any of a variety of techniques and/or methods, decodes theencoded video data and stores the resulting video data in a frame bufferin the video decoder's RAM. At a later time, the image may be read outof the frame buffer and passed through the display circuitry to the VGAoutput driver 634 and optionally, to the NTSC and/or ATSC output driver632, the output of which may be coupled to the display device 420. Thedisplay circuitry may also generate graphics and text for a graphicaluser interface (GUI), such as an electronic program guide, to bedisplayed.

Although not shown, any one or more of the cards 602-608 may include oneor more processors to execute machine readable instructions that may beused to implement the example methods, processes, apparatus, and/orsystems described herein. Also, the allocation of memory and controlfunctions may be arbitrarily divided between the cards 602-608 of theexample IRD 106 of FIG. 6. Thus, a substantial amount, or possibly all,of the control and memory functions for operation of the disclosedsystem may be integrated within a single card, or alternatively, may beincorporated within the PC motherboard 608.

Although the example IRDs 106 illustrated in FIGS. 4, 5 and 6 are shownas having a plurality of components, circuits and/or devices that areinterconnected or communicatively coupled with other components,circuits and/or devices, such interconnections are illustrated by way ofexample and should not be construed as limiting the manner in which theycan be interconnected to implement the example methods, apparatus,and/or systems described herein. On the contrary, the components,circuits and/or devices described above in connection with theillustrated examples of FIGS. 4-6 may be interconnected in any othersuitable manner to implement the example methods, apparatus, and/orsystems.

In the illustrated example DTH system 100, the HDD 425 of the exampleIRDs 106 of FIGS. 4-6 is partitioned into at least two partitions. Afirst network partition is used to store content (e.g., assets) “pushed”by the HE 102 to the IRDs 106 via the satellite/relay 104. Such pushedcontent is received and stored by the IRDs 106 without being selectedand/or requested by a user of an IRD 106. A second user partition isused to store content requested and/or selected by the user and bereceived via the satellite/relay 104 and/or downloaded via a CDN 110. Acontent request could be for a specific program or for a specificcategory of programs meeting any number of criteria, e.g. genre, actorname.

As discussed above, the example IRDs 106 of FIGS. 4-6 are able toreceive, decode and playback both live programs and non-live programs.Live programs received by an IRD 106 may be recorded by the IRD 106 tothe HDD 425 and/or may be directly decoded and played back to a displaydevice 420. In general, non-live programs are received and first storedin their entirety on the HDD 425 before being subsequently decodedand/or played back. Alternatively, a non-live asset may be directlydecoded and/or played back if it is received by the IRD 106 at a rateexceeding the playback rate of the asset. As also discussed above, liveand non-live programs may be recorded, stored, decoded, played backand/or otherwise manipulated identically by the IRDs 106. In particular,all assets are stored on the HDD 425 using a single file format.

In the example IRDs 106 of FIGS. 4-5, reception and/or recording of livedata will, in general, have a higher priority than the reception and/orrecording of non-live data. For example, an IRD 106 will be able tointerrupt (e.g., pause) the download of an asset from a CDN 110 toensure that a live program is received, recorded and/or played back inits entirety and without interruption. Once the conflict is over, theIRD 106 may resume downloading and/or reception of the non-live asset.

Since the example IRDs 106 of FIGS. 4-6 include a connection to theInternet 111, the example IRDs preferably use the Internet connectionvia the network interface 435 for back channel communications and/orcallbacks to the HE 102. Further, since Internet connections aretypically higher speed and always on, the Internet connection may bemore suitable for interactive applications, gaming, ratings measurement,etc.

The example IRDs 106 illustrated in FIGS. 4-6 may be implemented in asame housing or in different housings. For example, an IRD 106 may beimplemented in a single housing as a set-top box (STB), a DVR, a HMCand/or a PC. Another example IRD 106 comprises a first housing thatincludes the front end module 510 and a PC (i.e., second housing)implementing the other portions of the example IRD 106. In this event,the content delivered from one housing to the other would be protected,e.g. using data encryption techniques.

FIG. 7 illustrates an example encryption configuration for the exampleDTH system 100 of FIG. 1. At a HE 102, video is broadcast encrypted bythe encrypter 324 (FIG. 3) or encrypter 240 (FIG. 2) using, for example,a CW determined by the CAS 350. Using any variety of multiplexer 702,the HE 102 may multiplex the multiplexed broadcast encrypted video witha CWP from which the CW may be determined. As discussed above, themultiplexed CWP and broadcast encrypted video may be sent via asatellite/relay 104 to the IRD 106 and/or made available for download bythe IRD 106 via a CDN 110.

In the illustrated example of FIG. 7, at the IRD 106, the receivedbroadcast encrypted video is additionally encrypted using the AESencrypter 527. The additional encryption is performed using a copyprotection codeword (CPCW) determined by the security chip 524 using,for example, unique information input to the security chip and secretinformation stored on the security chip. In the example of FIG. 7, theCPCW is not known by the HE 102 or any other IRDs 106. The additionallyencrypted (i.e., super-encrypted) video is subsequently stored on theHDD 425.

When the encrypted video stored on the HDD 425 is to be played back, theencrypted video is first decrypted by the AES decrypter 528 using theCPCW and then the resulting broadcast encrypted video is furtherdecrypted using the CW by the DES decrypter 523 or an AES decrypter 525,depending upon the type of broadcast encryption performed by theencrypter 324 or the encrypter 240. Audio and data are handled in asimilar manner. The decrypted data may be subsequently decoded andplayed back for viewing by a user of the IRD 106 as described above inconnection with FIG. 5.

FIGS. 8, 9 and 10 illustrate flowcharts representative of exampleprocesses that may be carried out to implement the example HE 102 ofFIGS. 1-3. The example processes of FIGS. 8-10 and/or, more generally,the example HE 102 may be executed by a processor, a controller and/orany other suitable processing device. For example, the example processesof FIGS. 8-10 and/or, more generally, the example HE 102 may be embodiedin coded instructions stored on a tangible medium such as a flashmemory, or RAM associated with a processor (e.g., the processor 8010shown in the example processor platform 8000 and discussed below inconjunction with FIG. 35). Alternatively, some or all of the exampleprocesses of FIGS. 8-10 and/or, more generally, the example HE 102 maybe implemented using an application specific integrated circuit (ASIC),a programmable logic device (PLD), a field programmable logic device(FPLD), discrete logic, hardware, firmware, etc. Also, some or all ofthe example processes of FIGS. 8-10 and/or, more generally, the exampleHE 102 may be implemented manually or as combinations of any of theforegoing techniques, for example, a combination of firmware and/orsoftware and hardware. Further, although the example processes of FIGS.8-10 are described with reference to the flowcharts of FIGS. 8-10,persons of ordinary skill in the art will readily appreciate that manyother methods of implementing the example HE 102 may be employed. Forexample, the order of execution of the blocks may be changed, and/orsome of the blocks described may be changed, eliminated, sub-divided, orcombined. Persons of ordinary skill in the art will appreciate that theexample processes of FIGS. 8-10 may be carried out sequentially and/orcarried out in parallel by, for example, separate processing threads.

The example process of FIG. 8 begins with the HE 102 waiting for a newevent such as, for example, a scheduled time for asset creation, ascheduled time to broadcast an asset, etc. (block 802). If a new eventtime has not arrived, the HE 102 continues waiting. If the scheduledtime for a new event has arrived (block 802) and if new eventcorresponds to the scheduled creation of an asset (block 805), the TSS315 triggers the creation of an asset file (i.e., distribution file) by,for example, carrying out the example process described below inconjunction with FIG. 9 (block 810). Once the asset file has beencreated (block 810), control returns to block 802 to await anotherevent.

Returning to block 805, if the scheduled time to create an asset has notarrived, the TSS 315 determines if a scheduled time to broadcast anasset has arrived (block 815). If a scheduled time to broadcast an assethas arrived (block 815), the TSS 315 determines if the asset is to betransmitted via the satellite/relay 104 (block 820). If the asset is tobe transmitted via the satellite/relay 102 (block 820), the SMA 330configures the broadcast system 205 by, for example, carrying out theexample process described below in conjunction with FIG. 10 (block 825)and control proceeds to block 830.

At block 830, if the asset is to be transmitted to a CDN 110, the SMA330 under the control of the TSS 315 transmits the asset to the CDN 110using the assigned BOC channel of the link (block 835). If the transferis not successful (block 840), the SMA 330 re-transmits the asset to theCDN 110 (block 835). Once the asset has been successfully transmitted tothe CDN 110 (block 840) and/or the broadcast system 205 has beenconfigured (block 825), control returns to block 802 to await anothernew event. If the asset is not to be transmitted to a CDN 110 (block830), control returns to block 802 to await another new event.

The example process of FIG. 9, generally carried out when a new videoasset is received from a media source (e.g., block 805 of FIG. 8), isscheduled by the TSS 315. If the video asset is not received alreadyencoded (block 905), the encoder/converter 312 pre-encodes and packagesthe asset according to the CableLabs specification for VoD content(block 910). If the asset is already encoded (block 905), but is notencoded according to the house format (i.e., the CableLabs specificationfor VoD content) (block 915), the encoder/converter 312converts/re-encodes the assets and packages the asset according to theCableLabs specification for VoD content (block 920).

Once the video asset has been correctly pre-encoded and packagedaccording to the CableLabs specification for VoD content, the packetizer322 pre-packetizes the pre-encoded asset (block 925). If thepre-packetized pre-encoded asset is to be pre-encrypted (block 930), theencrypter 324 pre-encrypts the pre-packetized pre-encoded asset (block935). The broadcast encrypted or unencrypted asset is then stored, alongwith descriptive information (i.e., program name and/or other labels) inthe repository 322 (block 940) and control returns to, for example, theexample process of FIG. 8.

The example process of FIG. 10 is carried out when the scheduled time tobroadcast content (i.e., an asset) via the satellite/relay 104 arrives(e.g., block 820 of FIG. 8). The broadcast system 205 is configured withthe satellite transponder to be used to broadcast the asset (block1002). If the asset is live (block 1005), the broadcast system 205 isconfigured to start encoding the asset (block 1010) and to startencrypting the asset (block 1015) and to start transmitting the liveasset via the satellite/relay 104 (block 1020). Control then returns to,for example, the example process of FIG. 8.

Returning to block 1005, if the asset is not live, the SMA 330 sends theasset file of the asset to the multiplexer/modulator 245 of the examplebroadcast system 205 of FIG. 2, the broadcast system 205 startstransmitting the non-live asset via the satellite/relay 104 (block 1025)and control returns to, for example, the example process of FIG. 8.

FIG. 11 illustrates an example manner of implementing the Internet-basedcontent server 112 of FIG. 1. To connect the example Internet-basedcontent server 112 with other Internet-based content servers 112, theexample Internet-based content server 112 includes one of any variety ofoptical interface 1105. To connect the Internet-based content server 112with the Internet 111, the example Internet-based content server 112includes a network interface 1110. Alternatively, the exampleInternet-based content server 112 may be connected to the Internet 111via the optical interface 1105.

To control, manage and/or configure the example Internet-based contentserver 112 of FIG. 1, the illustrated example includes a processor 1115.The processor 1115 executes coded instructions present in main memory ofthe processor 1115. The processor 1115 may be any type of processingunit, such as a microprocessor from the Intel®, AMD®, IBM®, or SUN®families of microprocessors.

To store one or more pre-encoded, pre-packetized and, optionally,pre-encrypted asset files, the example Internet-based content server 112of FIG. 11 includes a database 1120. The database 1120 may also be usedto store encryption keys, identifiers for the IRDs 106 and/orauthorization results.

To process content delivery requests received from the IRDs 106, theillustrated example Internet-based content server 112 includes a requestprocessor 1125. The request processor 1125 uses, for example, IRD 106identifiers and/or authorization results stored in the database 1120 todetermine is an IRD 106 is allowed to download an asset file.

To encrypt or additionally encrypt an asset file prior to download to anIRD 106, the example Internet-based content server 112 of FIG. 11includes an encrypter 1130. The encrypter 1130 implements, for example,either the AES or the DES encryption standards.

Example usage of the Internet-based content server 112 of FIG. 11 toauthorize and/or securely delivery asset files to the IRDs 106 arediscussed below in Sections III-VI and in connection with FIGS. 16-26C.

FIG. 12 illustrates example signal processing, content delivery pathsand content delivery configurations for the example content deliverysystem of FIG. 1. In the illustrated example of FIG. 12, video data 1202is encoded by, for instance, the encoder/converter 312 (FIG. 3) therebycreating a block of encoded data 1205 consisting of, for example, aplurality of bytes. The encoded data 1205 is then packetized by, forinstance the packetizer 322 (FIG. 3) creating a plurality (i.e., stream)of data packets 1215A, 1215B and 1215C each having a header H and apayload P. In the example of FIG. 12, the plurality of data packets1215A-C are then broadcast encrypted by the encrypter 324 (FIG. 3)creating a plurality (i.e., stream) of encrypted data packets 1218A,1218B and 1218C each having the header H and an encrypted payload EP. Inparticular, the payload P of each of the plurality of data packets1215A-C are broadcast encrypted and the data packet headers H are leftunencrypted. Taken together, the stream of broadcast encrypted datapackets 1218A, 1218B and 1218C constitute a data stream 1219 that may bestored in an asset file in the repository 332 (FIG. 3) and/orimmediately transmitted via the satellite/relay 104. Alternatively,encryption of the data packets 1215A-C may be skipped and, thus, thedata packets 1218A-C would be substantially identical to data packets1215A-C. For simplicity the follow discussion refers to the encrypteddata packets 1218A-C, persons of ordinary skill in the art will readilyappreciate that the signal processing and content delivery pathsdescribed below could also be used to deliver the unencrypted datapackets 1215A-C.

The contents of the example asset file may subsequently be madeavailable for download via the CDN 110 and, in particular, anInternet-based content server 112. The Internet-based content server112, using any of a variety of techniques, receives and stores theexample asset file. In particular, a data structure used by theInternet-based content server 112 to store the asset file maintains,intact, the plurality of encrypted data packets 1218A-C created andprovided by the HE 102. When an IRD 106 downloads the example assetfile, the Internet-based content server 112 encapsulates the pluralityof encrypted data packets 1218A-C, via, for instance, an IP stack 1220into one or more IP packets that are sent to the IRD 106 via theInternet 111 (i.e., an Internet signal). An example IP packet 1225(i.e., Internet signal 1225) includes an IP header 1227 and a payloadcarrying one or more of the plurality of encrypted data packets 1218A-C.At an IRD 106, the network interface 435 (FIG. 5) receives the Internetsignal 1225 transmitted by the CDN 110 and using, for example an IPstack and/or download application, removes the IP header 1227 and passesthe payload of the IP packet 1225 (i.e., a data stream 1230) to thetransport module 520. In particular, the data stream 1230 includes aplurality of data packets 1232A-C and, in the example of FIG. 12, thereceived broadcast encrypted data packets 1232A-C are identical,excluding, for example, transmission errors, the broadcast encrypteddata packets 1218A-C created by the HE 102.

Additionally or alternatively, the broadcast encrypted data packets1218A-C may be immediately broadcast via the satellite/relay 104 and/orthe contents of the example asset file may be broadcast via thesatellite/relay 104 at a later time. In either case, the stream ofbroadcast encrypted data packets 1218A-C are multiplexed and modulatedby the multiplexer/modulator 245 (FIG. 2) and then processed by theuplink frequency converter/RF amplifier 250 (not shown) and broadcastvia the transmit (i.e., uplink) antenna 107 (not shown) to thesatellite/relay 104. In the example of FIG. 12, the IRD 106 receives asatellite signal 1235 including the up-converted, modulated andmultiplexed version of the stream of encrypted data packets 1218A-C. Thefront end module 510 (FIG. 5) down-converts de-modulates andde-multiplexes the received satellite signal 1235 and passes the thusreceived data stream 1240 to the transport module 520. In particular,the data stream 1240 includes a plurality of received broadcastencrypted data packets 1242A-C and, in the example of FIG. 12, thebroadcast encrypted data packets 1242A-C are identical, excluding, forexample, transmission errors, the broadcast encrypted data packets1218A-C created and broadcast by the HE 102.

As illustrated in the example of FIG. 12, the IRD 106 receives the samebroadcast encrypted data packets 1218A-C created by the HE 102.Additionally, the transport module 520 receives same the broadcastencrypted data packets 1218A-C regardless of whether the content, assetand/or asset file is received via the satellite/relay 104 and/or theInternet-based content server 112. In particular, the payload of thesatellite signal 1235 and the payload of the Internet signal 1225 areidentical. Further, the satellite signal 1235 and the Internet signal1225 only differ in the portion(s) of the satellite signal 1235 and theInternet signal 1225 that are transmission medium dependent, that isthey differ only in, for example, the modulation, the uplink frequencyconversion, the IP packetization, etc. applied to broadcast and/ortransmit the plurality of broadcast encrypted data packets 1218A-C tothe IRD 106. Clearly, as illustrated in FIG. 12, storage, decryption,decoding and/or playback of the received broadcast encrypted datapackets 1232A-C and/or 1242A-C may be performed independently of howthey were received.

II. Flexible Content Delivery

As described above in connection with the example DTH system 100 of FIG.1, the example IRDs 106 of FIGS. 1 and 4-6 may receive a program (e.g.,a TV program, a movie, a music video, etc.) via the satellite/relay 104and/or the CDN 110. More specifically, as described above in connectionwith the illustrated example of FIG. 12, an IRD 106 receives the sameplurality of encrypted and/or unencrypted data packets (e.g., theencrypted data packets 1218A-C of FIG. 12) regardless of whether theassociated program is received via the satellite/relay 104 and/or theCDN 110 (i.e., via a satellite signal and/or an Internet signal).

As also described above, the satellite signal(s) broadcast by the HE 102represent one or more programs. In the illustrated example of FIG. 1,the programs are broadcast at times determined by, for example, the TSS315. Reception of those programs via the satellite signal must thenoccur during the associated broadcast times. In contrast, programsdownloaded by an IRD 106 from the CDN 110 may occur at a time chosen bythe IRD 106.

By nature, the reception of a program by a large plurality of IRDs 106via the satellite/relay 104 is bandwidth efficient. That is, a programmay be broadcast once and simultaneously received by the large pluralityof IRDs 106. However, because channels (i.e., transponders) are limitedon the satellite/relay 104, the number of programs simultaneouslysupported by the satellite/relay 104 is correspondingly limited. Also bynature, the reception of a program by a large plurality of IRDs 106 viathe CDN 110 is bandwidth inefficient. In particular, each programdownloaded by an IRD 106 requires a separate transmission from the CDN110 to an IRD 106 and, thus, downloads of a single program by a largeplurality of IRDs 106 requires a correspondingly large plurality ofseparate transmissions.

In recognition of the above capabilities, characteristics and/orinherent advantages of the example DTH system 100 of FIG. 1, an IRD 106preferably receives and/or acquires content via the satellite/relay 104.However, because the same plurality of encrypted data packets isreceived via either the satellite/relay 104 and/or the CDN 110, an IRD106 may selectively receive all or any portion of a program from eitherof the satellite relay 104 and/or the CDN 110.

FIG. 13 illustrates an example reception of a portion of an exampleprogram 1305 via the satellite/relay 104 and another portion of theprogram 1305 via the CDN 110. Time in the example of FIG. 13 progressesfrom left to right. In the example of FIG. 13, the HE 102 startstransmission of (i.e., broadcasting) the program 1305 at a first pointin time designated by reference numeral 1310. At a later point in timedesignated by reference numeral 1315, a user of an IRD 106 selects forviewing and/or recording the program 1305. However, between times 1310and 1315, a beginning portion 1320 of the program 1305 has already beenbroadcast and is, thus, not currently receivable by the IRD 106.

In the illustrated example of FIG. 13, the CDN 110 has available fordownload an asset file containing the program 1305. In particular, asdiscussed above in connection with FIG. 12, the asset file available fordownload via the CDN 110 may contain the exact same plurality ofencrypted and/or unencrypted data packets that the HE 102 is currentlybroadcasting via the satellite/relay 104.

To allow the IRD 106 to start recording the program 1305 at time 1315into, for example, a file 1325 on the HDD 425 of the IRD 106, eventhough the HE 102 is currently part way through transmission of theprogram 1305 via the satellite/relay 104, the IRD 106 in the illustratedexample downloads 1335 the beginning portion 1320 of the file from theCDN 110 and starts recording 1340 the remaining portion 1345 of theprogram 1305 from the satellite signal. Because the same stream ofencrypted data packets is receivable via the satellite/relay 104 and/orthe CDN 110, the IRD 106 can seamlessly splice at a point in the programdesignated by reference numeral 1350 the portion 1320 of the programdownloaded from the CDN 110 while the remaining portion 1345 of theprogram 1305 is recorded from the satellite signal. For instance, theIRD 106 may use the sequence numbers in the headers of the encrypteddata packets to assemble a complete set of encrypted data packets, thatis, to ensure no data packets are duplicated or missing. Obviously, thefile 1325 thus created is identical to either recording the entireprogram 1305 from the satellite signal or downloading the entire program1305 from the CDN 110.

After downloading at least some of the portion 1320 from the CDN 110,the IRD 106 may, additionally or alternatively, immediately startdisplaying (i.e., decoding and playing back) the program 1305 whilesimultaneously recording the portion 1345 (i.e., the remainder of theprogram 1305) from the satellite signal. Once the entire downloadedportion 1320 has been displayed, the remaining portion 1345 can bedecoded and played back from the portion 1345 recorded from thesatellite signal.

If an asset file for the example program 1305 is not available via theCDN 110, the IRD 106 may wait for the next time the program 1305 isbroadcast. Furthermore, if the program 1305 is intended to not be playedback right away, the IRD 106 may alternatively download the portion 1345now, and record the portion 1320 at a later time.

FIG. 14 illustrates another example reception of a portion of an exampleprogram 1405 via the satellite/relay 104 and another portion of theprogram 1405 via the CDN 110. As in FIG. 13, time in the example of FIG.14 progresses from left to right. In the example of FIG. 14, the HE 102starts transmission of (i.e., broadcasting) the program 1405 at a pointin time designated by reference numeral 1410. Also at the point in time1410, an IRD 106 starts recording 1412 the program 1405 into, forexample, a file 1415 on the HDD 425 of the IRD 106 from the satellitesignal broadcast by the HE 102.

Starting at a later point in time designated by reference numeral 1420and continuing to a point in time designated by reference numeral 1425,reception of the satellite signal by the IRD 106 is inhibited by, forexample bad weather. Between the point in times 1420 and 1425, a portion1430 of the program 1405 is, thus, not receivable by the IRD 106 via thesatellite signal. In the example of FIG. 14, the IRD 106 downloads 1432the missing portion 1430 of the program 1405 from the asset file for theprogram 1405 available via the CDN 110 thereby allowing continuedrecording and/or delayed viewing of the example program 1405 at the IRD106. When the satellite signal is again receivable (e.g., a point intime designated by reference numeral 1425), the IRD 106 may resumerecording 1434 the remainder of the program 1405 from thesatellite/relay 104.

Because the same stream of encrypted data packets is receivable via thesatellite/relay 104 and/or the CDN 110, the IRD 106 can seamlesslysplice at points in the program designated by reference numerals 1435and 1440 the portion 1430 of the program downloaded from the CDN 110with the beginning and end of the program 1405 recorded from thesatellite signal (i.e., the portion of the program 1405 received via thesatellite signal prior to point in the program 1420 and after point inthe program 1425). Of course, the file 1415 thus created is identical toeither recording the entire program 1405 from the satellite signal ordownloading the entire program 1405 from the CDN 110.

After downloading at least some of the portion 1420 from the CDN 110,the IRD 106 may, additionally or alternatively, immediately startingdisplaying (i.e., decoding and playing back) the program 1405 whilesimultaneously recording the remainder of the program 1405 including,for example portion 1430.

If an asset file for the example program 1405 is not available via theCDN 110, the IRD 106 may wait for the next time the program 1405 isbroadcast. Furthermore, if the program 1405 is intended to not be playedback right away, the IRD 106 may alternatively record the portion 1430at a later time.

FIG. 15 illustrates a flowchart representative of an example processthat may be carried out to implement the example IRDs 106 of FIGS. 1 and4-6 and/or, more specifically, the examples illustrated in FIGS. 13 and14. The example process of FIG. 15 and/or, more specifically, theexample receptions illustrated in FIGS. 13 and 14 may be executed by aprocessor, a controller and/or any other suitable processing device. Forexample, the example process of FIG. 15 and/or, more specifically, theexample receptions illustrated in FIGS. 13 and 14 may be embodied incoded instructions stored on a tangible medium such as a flash memory,or RAM associated with a processor (e.g., the controller module 505 ofFIG. 5). Alternatively, some or all of the example process of FIG. 15and/or, more specifically, the examples illustrated in FIGS. 13 and 14may be implemented using an ASIC, a PLD, a FPLD, discrete logic,hardware, firmware, etc. Also, some or all of the example process ofFIG. 15 and/or, more specifically, the example receptions illustrated inFIGS. 13 and 14 may be implemented manually or as combinations of any ofthe foregoing techniques, for example, a combination of firmware and/orsoftware and hardware. Further, although the example process of FIG. 15are described with reference to the flowchart of FIG. 15, persons ofordinary skill in the art will readily appreciate that many othermethods of implementing the example IRDs 106 of FIGS. 1 and 4-6 and/or,more specifically, the example receptions illustrated in FIGS. 13 and 14may be employed. For example, the order of execution of the blocks maybe changed, and/or some of the blocks described may be changed,eliminated, sub-divided, or combined. Persons of ordinary skill in theart will appreciate that the example processes of FIG. 15 may be carriedout sequentially and/or carried out in parallel by, for example,separate processing threads.

The example process of FIG. 15 begins with the selection by, forexample, a user of a new program for viewing and/or recording (i.e., aprogram different from that currently being viewed and/or recorded). TheIRD 106 determines if the transmission of the new program via thesatellite/relay 104 has already started (block 1515), that is, if abeginning portion of the new program (e.g., the example beginningportion 1320 of FIG. 13) has already been missed. If transmission of thenew program via the satellite/relay 104 has already started (block1515), the IRD 106 starts recording the remainder of the new programfrom the satellite signal (e.g., the example portion 1345 of FIG. 13)(block 1520) and downloads and records the missed beginning portion fromthe CDN 110 (block 1525). If the new program is to be viewed, the IRD106 begins playback of the new program starting with the beginningportion downloaded from the CDN 110 and continues with the remainderportion received via the satellite signal. Control then proceeds toblock 1545 to monitor for a satellite interruption.

Returning to block 1515, if the new program has not already started, theIRD 106 waits for the start of the new program (block 1535). When thenew program starts (block 1535), the IRD 106 starts recording and/orplayback of the new program received via the satellite signal (block1540).

At block 1545, after recording from the satellite has begun at eitherblock 1520 or block 1540, the IRD 106 determines if reception of anongoing satellite signal is interrupted. If no interrupt occurs (block1545), the IRD 106 determines if downloading of the program hascompleted via the CDN 110 and/or the satellite signal (block 1547). Ifdownload of the program has not completed (block 1547), control returnsto block 1545 to monitor for a satellite signal interruption. Ifrecording of the program has completed (block 1547), control returnsfrom the example machine executable instructions of FIG. 15.

Returning to block 1545, if a satellite signal interruption occurs, theIRD 106 starts downloading and recording the missing (i.e., interrupted)portion of the program (e.g., the example missing portion 1430 of FIG.14) from the CDN 110 (block 1550). The IRD 106 continues downloading theprogram from the CDN 110 until the reception of the satellite signalresumes (block 1555). When reception of the satellite signal resumes(block 1555), the IRD 106 resumes playback and/or recording of theprogram via the satellite signal (block 1560). Control then returns toblock 1545 to check for another interruption. If at block 1555 receptionof the satellite signal does not resume, if the IRD 106 checks ifrecording of the new program has completed (block 1557). If recording isnot complete, the IRD 106 continues recording the program from the CDN110 and control returns to block 1555 to monitor for the satellitesignal to resume. If recording of the program is complete (block 1557),control returns from the example machine executable instructions of FIG.15.

The downloading from the CDN 110 of any missing and/or beginningportion(s) continues in parallel to recording via the satellite signal,if necessary, to complete reception and recording of the selectedprogram. Of course, if the interruption occurs during a recording forlater playback, the downloading and recording of the missing portion ofthe program need not occur simultaneously with the reception of thesatellite signal.

III. Conditional Access of Broadband Content

As described above in connection with the example DTH system 100 of FIG.1, the example IRDs 106 of FIGS. 1 and 4-6 may receive a program (e.g.,a TV program, a movie, a music video, an asset file, etc.) via thesatellite/relay 104 and/or the CDN 110. In an example described above inconnection with the illustrated example of FIG. 7, an IRD 106 utilizesexisting encryption and/or authorization implemented by the example DTHsystem 100 to authorize the decryption and/or playback of programsdownloaded via the CDN 110. In particular, the IRD 106 uses CWP(s) todetermine if the IRD 106 is authorized to decrypt and/or playback aprogram.

To facilitate more efficient utilization of the CDN 110 and/or theInternet 111 and/or to reduce costs associated with operating theexample pay content delivery system 100 of FIG. 1, a download of aprogram may be authorized prior to download. In particular, an IRD 106may first request an authorization to download a program and, if thedownload is authorized, then download the program. That is the paycontent delivery system 110 implements a conditional access schemewhereby authorization to download content is based upon a condition(e.g., information provided by the IRD 106). By authorizing beforedownload, unauthorized downloads and the costs associated with downloadsmay be reduced. For example, the vendor of the CDN 110 may charge theoperator of the HE 102 for each program download regardless of whetheror not the IRD 106 is able to successfully decrypt the program (i.e.,playback the program). In particular, an IRD 106 which is not authorizedto download a program will be unable to download the program, therebyreducing the likelihood and/or motivation for content pirates using, forexample, Internet connections from anywhere in the world to exploit theexample pay content delivery system 100.

Multiple methods may be implemented to pre-authorize program downloads.An example method is described below in connection with FIGS. 16 and17A-C. Additional and/or alternative methods are described in SectionsIV-VI in connection with FIGS. 18-26C.

FIG. 16 illustrates an example conditional access exchange that may beimplemented to authorize a download of an asset prior to download. Inthe illustrated example of FIG. 16, a user of an IRD 106 selects aprogram (e.g., a movie, a TV program, a music video, etc.) for downloadvia the CDN 110. The IRD 106 sends an authorization request 1605 (e.g.,via an authorization request message) to the HE 102. The CAS 350 (FIG.3) determines if the IRD 106 is authorized to download the program and,if the download is authorized, sends authorization information 1610(e.g., via an authorization message) to the CDN 110. If, in the exampleof FIG. 16, the HE 102 determines that an IRD 106 is not authorized todownload the program, the HE 102 does not send authorization informationto the CDN 110 and sends an authorization rejection response to the IRD106 (not shown). Alternatively or additionally, the HE 102 may sendauthorization information 1610 to the CDN 110 that indicates that theIRD 106 is not authorized to download the program. In the illustratedexample of FIG. 16, the authorization request 1605 may be communicatedvia existing communication paths within the example pay content deliverysystem 100 of FIG. 1 such as, for instance, via back-channelcommunications (e.g., via the Internet 111).

The CDN 110 stores the authorization information 1610 in, for example,the database 1120 (FIG. 11). When the IRD 106 sends a content request1615 (e.g., via a content request message) to the CDN 110, the requestprocessor 1125 (FIG. 11) determines if the IRD 106 is authorized todownload the requested program based on authorization information storedin, for instance, the database 1120. In particular, if the IRD 106 isauthorized to download the program, then the request processor 1125 isable to locate the authorization information 1610 for the IRD 106 andthe requested program. If the IRD 106 is authorized to download theprogram, the CDN 110 transmits 1620 the program (i.e., the contents ofthe asset file for the program) to the IRD 106.

After and/or during download, the IRD 106 may decrypt and/or playbackthe program as described above in connection with FIG. 7. In particular,the IRD 106 may utilize CWP(s) received in a satellite signal and/orreceived from the CDN 110 to determine CW(s) that may be used tocorrectly decrypt those received data packets that are encrypted.Further, as also described above in connection with FIG. 7, the IRD 106may additionally encrypt the downloaded program prior to storage on theHDD 425 (FIG. 5).

In an example, the authorization request 1605 may contain informationthat the HE 102 may use to verify the identity of the IRD 106. Forexample, an identification number for a smart card inserted in the smartcard reader 562 (FIG. 5), an identification number of the IRD 106, aperiodically or aperiodically changing number received by the IRD 106 ina satellite signal broadcast by the HE 102, etc. Of course, otherexamples abound.

Additionally or alternatively, the content request 1615 iscryptographically enhanced. For example, any of a variety ofcryptographic hashes could be applied to the content request 1615 priorto transmission. For instance, the IP address of the IRD 106 may be usedto scramble the content request 1615 to prevent “copy” and/or “replay”type piracy attacks. If the CDN 110 is unable to correctly decipher thecontent request message 1615 the CDN 110 ignores the content request1615 and/or returns an error message. The content request 1615 mayinclude a periodically or aperiodically changing number received by theIRD 106 in a satellite signal broadcast by the HE 102 to verify that theIRD 106 is currently part of the example pay content delivery system 100of FIG. 1. Further, authorization information 1610 received from the HE102 may expire some period of time (e.g., 24 hours) after theauthorization information 1610 is received.

FIGS. 17A-C illustrate flowcharts representative of example processesthat may be carried out by the HE 102, the IRDs 106 and the CDN 110,respectively, to implement the example conditional access exchange ofFIG. 16 and/or, more generally, the example pay content delivery system100 of FIG. 1. The example processes of FIGS. 17A-C may be executed by aprocessor, a controller and/or any other suitable processing device. Forexample, the example processes of FIGS. 17A-C may be embodied in codedinstructions stored on a tangible medium such as a flash memory, or RAMassociated with a processor (e.g., the processor 8010 shown in theexample processor platform 8000 and discussed below in conjunction withFIG. 35). Alternatively, some or all of the example processes of FIGS.17A-C may be implemented using an ASIC, a PLD, a FPLD, discrete logic,hardware, firmware, etc. Also, some or all of the example processes ofFIGS. 17A-C may be implemented manually or as combinations of any of theforegoing techniques, for example, a combination of firmware and/orsoftware and hardware. Further, although the example processes of FIGS.17A-C are described with reference to the flowcharts of FIGS. 17A-C,persons of ordinary skill in the art will readily appreciate that manyother methods of implementing the example conditional access exchange ofFIG. 16 and/or, more generally, the example DTH system 100 may beemployed. For example, the order of execution of the blocks may bechanged, and/or some of the blocks described may be changed, eliminated,sub-divided, or combined. Persons of ordinary skill in the art willappreciate that the example processes of FIGS. 17A-C may be carried outsequentially and/or carried out in parallel by, for example, separateprocessing threads.

The example process of FIG. 17A begins with an IRD 106 waiting until auser selects a program for viewing and/or playback (block 1702). When aprogram selection is received (block 1702), the IRD 106 generates andsends an authorization request (e.g., the authorization request 1605 ofFIG. 16) to the HE 102 (block 1705). The authorization request, asdiscussed above, may contain information that verifies the identity ofthe IRD 106. The IRD 106 then sends a content request (e.g., the contentrequest 1615 of FIG. 16) to the CDN 110 (block 1710). As also discussedabove, the content request may be cryptographically enhanced and/orinclude information that the CDN 110 may use to verify that the IRD 106is a member of the example pay content delivery system 100.

If the download is authorized (block 1715), the IRD 106 downloads theprogram from the CDN 110 (block 1720) and control returns to block 1702to await another program selection. Authorization may be determined by,for example, the start of reception (i.e., download) of the program fromthe CDN 110. The CDN 110 may, alternatively, send an authorizationresponse message to the IRD 106 prior to the start of the download orsend an authorization rejection message to the IRD 106. The IRD 106 mayalso use a timeout to determine that the download was not authorized. Ifauthorization is rejected or download doesn't start, the IRD 106presents, for example, an authorization denied message to the user(block 1725) and control returns to block 1702 to wait for anotherprogram selection. Alternatively, the IRD 106 may retry, one or moretimes, the authorization request (block 1705) and/or content request(block 1710). In particular, one retry of the content request (block1710) may be beneficial to ensure that the CDN 110 had adequate time toreceive and process authorization information provided by the HE 102.Alternatively, the IRD 106 may wait a period of time before sending thecontent request message (block 1710).

The example process of FIG. 17B begins with the HE 102 waiting toreceive an authorization request (e.g., the authorization request 1605of FIG. 16) (block 1730). If an authorization request is received (block1730), the CAS 350 (FIG. 3) determines based on, for example,identifying information in the authorization request, if download of theprogram is authorized (block 1735). If the download is authorized (block1740), the HE 102 sends authorization information (e.g., theauthorization information 1610 of FIG. 16) to the CDN 110 (block 1745)and control returns to block 1730 to await another authorizationrequest. If the download is not authorized (block 1740), anauthorization rejection message may be sent (not shown) and controlreturns to block 1730 to await another authorization request.

The example process of FIG. 17C begins with the CDN 110 waiting until anew event occurs (block 1760). Example new events include receivingauthorization information and/or receiving a content request. If a newevent occurs (block 1760), the CDN 110 determines if authorizationinformation (e.g., the authorization information 1610 of FIG. 16) isreceived (block 1765). If authorization information is received (block1765), the CDN 110 stores the authorization information in, for example,the database 1120 (FIG. 11) (block 1770) and control returns to block1760 to await another new event.

If a content request is received (e.g., the content request 1615 of FIG.16) (block 1775), the request processor 1125 (FIG. 11) determines, asdescribed above, if the IRD 106 is authorized to download the program(block 1780). If the IRD 106 is authorized to download the program(block 1785), the CDN 110 transfers the program to the IRD 106 (block1790) and control returns to block 1760 to wait for another new event.If no authorization is available, an authorization denied message may besent (not shown).

IV. Signed Conditional Access of Broadband Content

As described above in Sections I and III, to facilitate more efficientutilization of the CDN 110 and/or the Internet 111 and/or to reducecosts associated with operating the example pay content delivery system100 of FIG. 1, a download of a program may be authorized prior todownload. In particular, an IRD 106 may first request an authorizationto download a program and, if the download is authorized, the downloadmay proceed. Multiple methods may be implemented to pre-authorizeprogram downloads. An example method is described below in connectionwith FIGS. 18 and 19A-C. Additional and/or alternative methods aredescribed in Sections III, V-VI in connection with FIGS. 16-17C and20-26C.

FIG. 18 illustrates an example conditional access exchange that may beimplemented to authorize a download of an asset prior to download. Inthe illustrated example of FIG. 18, a user of an IRD 106 selects aprogram (e.g., a movie, a TV program, a music video, an asset file,etc.) for download via the CDN 110. In response to the selection, theIRD 106 sends an authorization request 1805 (e.g., via an authorizationrequest message) to the HE 102. The CAS 350 (FIG. 3) determines if theIRD 106 is authorized to download the program and, if the download isauthorized, signs and sends an authorization 1810 (e.g., via a signedauthorization message) to the IRD 106. If, in the example of FIG. 18,the HE 102 determines that an IRD 106 is not authorized to download theprogram, the HE 102 sends an authorization rejection response (notshown) to the IRD 106. The HE 102 sends to the CDN 110, for example, asecret key 1812 that may be used by the CDN 110 to verify the signedauthorization 1810 (e.g., via a key message).

The authorization 1810 may be signed using any of a variety oftechniques such as, for example, the authorization 1810 may be signedusing a secret key (e.g., the secret key 1812) known to both the CAS 350(FIG. 3) and the CDN 110, the authorization 1810 may be signed using aprivate signing key for which the CDN 110 knows a corresponding publicchecking key, etc. In the illustrated example of FIG. 18, theauthorization request 1805 and the signed authorization response 1810may be communicated via existing communication paths within the examplepay content delivery system 100 of FIG. 1. In particular, theauthorization request 1805 may be transmitted as discussed above viaback-channel communications (e.g., via the Internet 111) and the signedauthorization 1810 may be transmitted via the satellite/relay 104 and/orvia the Internet 111.

The IRD 106 then sends a content request 1815 (e.g., via a contentrequest message) and a corresponding signed authorization 1820 (e.g.,via a signed authorization message) to the CDN 110. In the example ofFIG. 18, the signed authorization 1820 sent to the CDN 110 is the signedauthorization 1810 received from the HE 102. In response to the contentrequest 1815 and the signed authorization 1820, the request processor1125 (FIG. 11) determines if the IRD 106 is authorized to download therequested program based on the signed authorization 1820. The CDN 110may verify the authenticity of the signed authorization 1820 using anyof a variety of techniques such as, for example, using the secret keyused by the HE 102 to sign the authorization 1810, using a publicchecking key, etc. In the example of FIG. 18, the HE 102 delivers to theCDN 110, via any of a variety of secure means, secret keys and/or publicchecking keys for verifying signed authorizations 1820 (e.g., the secretkey 1812). If the IRD 106 is authorized to download the program (i.e.,the CDN 110 is able to successfully verify the signed authorization1820), the CDN 110 transmits 1825 the program (i.e., the contents of theasset file for the program) to the IRD 106.

After and/or during download, the IRD 106 may decrypt and/or playbackthe program as described above in connection with FIG. 7. In particular,the IRD 106 may utilize CWP(s) received in a satellite signal and/orreceived from the CDN 110 to determine CW(s) that may be used tocorrectly decrypt those received data packets that are encrypted.Further, as also described above in connection with FIG. 7, the IRD 106may additionally encrypt the downloaded program prior to storage on theHDD 425 (FIG. 5).

In an example, the authorization request 1805 may contain informationthat the HE 102 may use to verify the identity of the IRD 106. Forexample, an identification number for a smart card inserted in the smartcard reader 562 (FIG. 5), an identification number of the IRD 106, aperiodically or aperiodically changing number received by the IRD 106 ina satellite signal broadcast by the HE 102, etc. Of course, otherexamples abound.

Additionally or alternatively, the content request 1815 and/or thesigned authorization 1820 may be cryptographically enhanced. Forexample, any of a variety of cryptographic hashes could be applied tothe content request 1815 and/or the signed authorization 1820 prior totransmission. For instance, the IP address of the IRD 106 may be used toscramble the content request 1815 to prevent “copy” and/or “replay” typepiracy attacks. If the CDN 110 is unable to correctly decipher thecontent request message 1815 the CDN 110 ignores the content request1815 or returns an error message. The content request 1815 may include aperiodically or aperiodically changing number received by the IRD 106 ina satellite signal broadcast by the HE 102 to verify that the IRD 106 iscurrently part of the example pay content delivery system 100 of FIG. 1.

FIGS. 19A-C illustrate flowcharts representative of example processesthat may be carried out by the IRDs 106, the HE 102 and the CDN 110,respectively, to implement the example conditional access exchange ofFIG. 18 and/or, more generally, the example pay content delivery system100 of FIG. 1. The example processes of FIGS. 19A-C may be executed by aprocessor, a controller and/or any other suitable processing device. Forexample, the example processes of FIGS. 19A-C may be embodied in codedinstructions stored on a tangible medium such as a flash memory, or RAMassociated with a processor (e.g., the processor 8010 shown in theexample processor platform 8000 and discussed below in conjunction withFIG. 35). Alternatively, some or all of the example processes of FIGS.19A-C may be implemented using an ASIC, a PLD, a FPLD, discrete logic,hardware, firmware, etc. Also, some or all of the example processes ofFIGS. 19A-C may be implemented manually or as combinations of any of theforegoing techniques, for example, a combination of firmware and/orsoftware and hardware. Further, although the example processes of FIGS.19A-C are described with reference to the flowcharts of FIGS. 19A-C,persons of ordinary skill in the art will readily appreciate that manyother methods of implementing the example conditional access exchange ofFIG. 18 and/or, more generally, the example DTH system 100 may beemployed. For example, the order of execution of the blocks may bechanged, and/or some of the blocks described may be changed, eliminated,sub-divided, or combined. Persons of ordinary skill in the art willappreciate that the example processes of FIGS. 19A-C may be carried outsequentially and/or carried out in parallel by, for example, separateprocessing threads.

The example process of FIG. 19A begins with an IRD 106 waiting until auser selects a program for viewing and/or playback (block 1902). When aprogram selection is received (block 1902), the IRD 106 generates andsends an authorization request (e.g., the authorization request 1805 ofFIG. 18) to the HE 102 (block 1906). The authorization request, asdiscussed above, may contain information that verifies the identity ofthe IRD 106. The IRD 106 then waits for an authorization response (e.g.,the signed authorization response 1810 of FIG. 18) from the HE 102(block 1910). In an example, upon sending the authorization request(block 1906), the IRD 106 starts a count down timer. When the timerexpires at block 1910, the IRD 106 ceases waiting for a response fromthe HE 102, displays a rejection message (block 1918) and controlreturns to block 1902 to wait for another program selection.

When an authorization response is received (block 1910), the IRD 106based upon information in the authorization response determines if therequested download is authorized (block 1914). If the download is notauthorized (block 1914), the IRD 106 presents, for example, anauthorization denied message to the user (block 1918) and controlreturns to block 1902 to wait for another program selection.

If the download is authorized (block 1914), the IRD 106 sends a contentrequest (e.g., the content request 1815 of FIG. 18) to the CDN 110(block 1922) and sends the signed authorization received from the HE 102at block 1910 (e.g., the signed authorization 1820 of FIG. 18) to theCDN 110 (block 1926). As also discussed above, the content requestand/or the signed authorization may be cryptographically enhanced and/orinclude information that the CDN 110 may use to verify that the IRD 106is a member of the example pay content delivery system 100. The IRD 106then downloads the program from the CDN 110 (block 1928) and controlreturns to block 1902 to await another program selection.

The example process of FIG. 19B begins with the HE 102 sending a secretkey (e.g., the secret key 1812 of FIG. 18) to the CDN 110 (block 1929).The HE 102 then waits to receive an authorization request (e.g., theauthorization request 1805 of FIG. 18) (block 1930). If an authorizationrequest is received (block 1930), the CAS 350 (FIG. 3) determines basedon, for example, identifying information in the authorization request,if download of the program is authorized (block 1935). If the downloadis authorized (block 1940), the HE 102 signs and sends an authorization(e.g., the signed authorization 1810 of FIG. 18) to the IRD 106 (block1945) and control returns to block 1930 to await another authorizationrequest. If the download is not authorized (block 1940), the HE 102sends an authorization rejection (block 1950) to the IRD 106 and controlreturns to block 1930 to await another authorization request.

The example process of FIG. 19C begins with the CDN 110 waiting toreceive a secret key (e.g., the secret key 1812 of FIG. 18) from the HE102 (block 1954). When a secret key is received (block 1954), the CDN110 stores the secret key (block 1958) and then waits to receive acontent request (block 1960).

When a content request is received (e.g., the content request 1815 ofFIG. 18) (block 1960), the request processor 1125 (FIG. 11) waits toreceive a signed authorization (e.g., the signed authorization 1820 ofFIG. 18) (block 1965). If a timeout occurs while waiting for the signedauthorization, the CDN 110 sends a rejection response to the IRD 106(block 1985) and control returns to block 1960 to wait for another newevent. When both a content request and a corresponding signedauthorization are received (block 1965) and the CDN 110 has stored thesecret key, the request processor 1125 determines, as described above,if the IRD 106 is authorized to download the program (block 1970). Inparticular, the request processor 1125 verifies the authenticity of thesigned authorization. In an example, upon receiving a content request(block 1960), the request processor 1125 starts a count down timer. Whenthe timer expires, the request processor 1125 ceases waiting for asigned authorization from the IRD 106 (block 1965) and control returnsto block 1960 to wait for another content request.

If the signature of the authorization response is verified (block 1975),the CDN 110 transfers the program to the IRD 106 (block 1980) andcontrol returns to block 1960 to wait for another new event. If theauthorization response is not verifiable (block 1975), the CDN 110 sendsa rejection response to the IRD 106 (block 1985) and control returns toblock 1960 to wait for another new event.

V. Validated Conditional Access of Broadband Content

As described above in Sections I and III, to facilitate more efficientutilization of the CDN 110 and/or the Internet 111 and/or to reducecosts associated with operating the example pay content delivery system100 of FIG. 1, a download of a program may be authorized prior todownload. In particular, an IRD 106 may first request an authorizationto download a program and, if the download is authorized, the downloadmay proceed. Multiple methods may be implemented to pre-authorizeprogram downloads. Example methods are described below in connectionwith FIGS. 20, 21, 22A-C and 23A-C. Additional and/or alternativemethods are described in Sections III, IV, and VI in connection withFIGS. 16-19C, 24A-B, 25 and 26A-C.

FIGS. 20 and 21 illustrate example conditional access exchanges that maybe implemented to authorize a download of an asset prior to download. Inthe illustrated example of FIG. 20, the HE 102 sends validation secrets2005 to an IRD 106. The validation secrets 2005 includes any of avariety of information such as, for example, a shared secret, a publickey, a private key, etc. that may be used to verify the identity of theIRD 106. In particular, as described below, the IRD 106 will usevalidation secrets 2005 to verify its identity as part of a contentrequest made to the CDN 110.

When a user of an IRD 106 selects a program (e.g., a movie, a TVprogram, a music video, an asset file, etc.) for download via the CDN110, the IRD 106 sends a content request 2015 (e.g., via a contentrequest message) and any of a variety of validation data 2020 (e.g., viaa validation data message) to the CDN 110. An example validation datamessage 2020 includes a cryptographic signature of the IRD 106 or ashared secret. In the example of FIG. 20, the validation data 2020 maybe used to determine the authorization for the corresponding contentrequest 2015 (i.e., the validation data 2020 is a form of anauthorization message). Using any of a variety of techniques, therequest processor 1125 (FIG. 11) authenticates the identity of the IRD106 based on the validation data 2020. If the identity of the IRD 106 isauthentic, the CDN 110 transmits 2025 the program (i.e., the contents ofthe asset file for the program) to the IRD 106. After downloading theprogram, the IRD 106 sends a download report 2030 (e.g., via a downloadreport message 2030) to the HE 102. If, in the example of FIG. 20, theHE 102 determines that an IRD 106 is not authorized to download theprogram, the HE 102 may send an authorization rejection response (notshown) to the IRD 106.

In a presently preferred example, the IRDs 106 utilize a common sharedsecret to authenticate themselves to the CDN 110. In particular, the HE102 broadcasts a shared secret 2005 that may be, for example, changedperiodically or aperiodically by the HE 102, to all authorized IRDs 106as well as to the CDN 110 (not shown). Preferably a portion of thecontent request 2015 (e.g., the URL of the requested asset) iscryptographically hashed with the shared secret, thus, eliminating theneed to expressly send the validation data 2020. That is, the contentrequest 2015 and an authorization message containing validation data2020 are combined since the validation data 2020 is used tocryptographically modify the content request 2015.

In the illustrated example of FIG. 21, the HE 102 sends, using any of avariety of secure methods, a HE public key 2102 to the CDN 110. The HEpublic key 2102 may be used by the CDN 110, as discussed below, toverify information received from an IRD 106. To enhance security, the HE102 may periodically change and re-distribute the HE public key 2102.

The IRD 106 registers with the HE 102 by sending a client registration2104 (e.g., a client registration message). In response to the clientregistration 2104, the HE 102 determines a private key 2106 and acorresponding public key 2108 for the IRD 106, sends the private key2106 to the IRD 106 (e.g., via a private key message), and sends acertified version of the public key 2108 to the IRD 106 (e.g., via apublic key message). In the example of FIG. 21, the public key 2108 iscertified with a HE private key that corresponds to the HE public key2102. The certified public key 2108 is passed in, for example, a message2110 by the IRD 106 to the CDN 110 (e.g., via a certified public keymessage). Using the previously received HE public key 2102, the CDN 110certifies the authenticity of the public key 2108 received from the IRD106. Having certified the public key 2108, the CDN 110 may use thepublic key 2108 to verify future information from the IRD 106 that issigned with the private key 2106. The IRD 106 may periodically repeatthe above client registration process to update the public keycertificate and/or to extend the expiry of the public key.

When a user of an IRD 106 selects a program (e.g., a movie, a TVprogram, a music video, etc.) for download via the CDN 110, the IRD 106sends a content request 2112 (e.g., via content request message) and aclient signature 2114 (e.g., via a client signature message) to the CDN110 together with the previously received certified public key 2108 in,for example, the message 2110. Using the certified public key 2108, therequest processor 1125 (FIG. 11) authenticates the identity of the IRD106 and/or the authenticity of the content request 2112. If the identityof the IRD 106 and/or the content request 2112 is authentic, the CDN 110transmits 2120 the program (i.e., the contents of the asset file for theprogram) to the IRD 106. At some point after downloading the program,the IRD 106 sends a download report 2130 (e.g., via a download reportmessage 2130) to the HE 102. Additionally or alternatively, the CDN 110may, at some point, transmit a download report to the HE 102 (notshown). Such download reports may be compared with, for example,download usage report(s) 2135 provided periodically or aperiodically tothe HE 102 by the CDN 110. If, in the example of FIG. 21, the CDN 110determines that an IRD 106 is not authorized to download the program,the CDN 110 may send an authorization rejection response (not shown) tothe IRD 106.

In the illustrated examples of FIGS. 20 and 21, information between theHE 102 and the IRD 106 may be communicated via existing communicationpaths within the example pay content delivery system 100 of FIG. 1. Forexample, the client registration 2104 may be transmitted using any of avariety of secure methods via the Internet 111. The private key 2106and/or the public key 2108 may also be delivered using any of a varietyof secure methods via the Internet 111. Alternatively, the private key2106 and/or the public key 2108 may be delivered via the satellite/relay104 using existing broadcast security and IRD 106 addressing techniques.

In the examples of FIGS. 20 and 21, after and/or during download, theIRD 106 may decrypt and playback the program as described above inconnection with FIG. 7. In particular, the IRD 106 may utilize CWP(s)received in a satellite signal and/or received from the CDN 110 todetermine CW(s) that may be used to correctly decrypt the receivedencrypted data packets. Further, as also described above in connectionwith FIG. 7, the IRD 106 may additionally encrypt the downloaded programprior to storage on the HDD 425 (FIG. 5).

FIGS. 22A-C and 23A-C illustrate flowcharts representative of exampleprocesses that may be carried out by the HE 102, the IRDs 106 and theCDN 110, respectively, to implement the example conditional accessexchanges of FIGS. 20 and 21, respectively, and/or, more generally, theexample pay content delivery system 100 of FIG. 1. The example processesof FIGS. 22A-C and 23A-C may be executed by a processor, a controllerand/or any other suitable processing device. For example, the exampleprocesses of FIGS. 22A-C and 23A-C may be embodied in coded instructionsstored on a tangible medium such as a flash memory, or RAM associatedwith a processor (e.g., the processor 8010 shown in the exampleprocessor platform 8000 and discussed below in conjunction with FIG.35). Alternatively, some or all of the example processes of FIGS. 22A-Cand 23A-C may be implemented using an ASIC, a PLD, a FPLD, discretelogic, hardware, firmware, etc. Also, some or all of the exampleprocesses of FIGS. 22A-C and 23A-C may be implemented manually or ascombinations of any of the foregoing techniques, for example, acombination of firmware and/or software and hardware. Further, althoughthe example processes of FIGS. 22A-C and 23A-C are described withreference to the flowcharts of FIGS. 22A-C and 23A-C, persons ofordinary skill in the art will readily appreciate that many othermethods of implementing the example conditional access exchange of FIGS.20 and 21, respectively, and/or, more generally, the example DTH system100 may be employed. For example, the order of execution of the blocksmay be changed, and/or some of the blocks described may be changed,eliminated, sub-divided, or combined. Persons of ordinary skill in theart will appreciate that the example processes of FIGS. 22A-C and 23A-Cmay be carried out sequentially and/or carried out in parallel by, forexample, separate processing threads.

The example process of FIG. 22A begins with an IRD 106 determining ifnew validation secrets were received (block 2204). If validation secretswere not received (block 2204), the IRD 106 continues to wait. Ifvalidation secrets (e.g., the validation secrets 2005 of FIG. 20) arereceived (block 2204), the IRD 106 stores the validation secrets (e.g.,a shared secret) (block 2206).

Once validation secrets have been received (block 2204) and stored(block 2206), the IRD 106 determines if a user selected a program forviewing and/or playback (block 2208). If a program selection was made(block 2208), the IRD 106 generates and sends a content request (e.g.,the content request 2015 of FIG. 20) to the CDN 110 (block 2210) andsends the validation data (e.g., the validation data 2020 of FIG. 20) tothe CDN 110 (block 2212). The IRD 106 then downloads the program fromthe CDN 110 (block 2214), sends a download report (e.g., the downloadreport 2030 of FIG. 20) to the HE 102 (block 2216) and control returnsto block 2208 to await a new program selection.

Alternatively, as discussed above, the content request sent at block2210 may contain additionally information useable to authorize the IRD106 to download the program and, thus, the IRD 106 may skip sending thevalidation data (block 2212). For example, the IRD 106 may receive ashared secret via the satellite/relay 104 and then use the shared secretto scramble the content request (block 2210).

The example process of FIG. 22B begins with the HE 102 sendingvalidation secrets (e.g., a shared secret, the validation secrets 2005of FIG. 20) to the IRD 106 (block 2230). The HE 102 then waits toreceive a download report (e.g., the download report 2030 of FIG. 20)(block 2232). If a download report is received (block 2232), the billingsystem 355 (FIG. 3) updates the billing record for the IRD 106 (block2234) and control returns to block 2232 to await another downloadreport.

The example process of FIG. 22C begins with the CDN 110 waiting toreceive a content request (block 2266). When a content request (e.g.,the content request 2015 of FIG. 20) is received (block 2266), the CDN110 waits to receive validation data (block 2268). If a timeout occurswhile waiting to receive the validation data (block 2268), the CDN 110notifies the IRD 106 by, for example, sending a download rejection(block 2276) and control returns to block 2266 to await another newcontent request. When validation data (e.g., the validation data 2020 ofFIG. 20) is received (block 2268), the CDN 110 verifies the authenticityof the content request based on the validation data (block 2270). If thecontent request is authentic (block 2272), the CDN 110 startstransferring the program (block 2274) and control returns to block 2266to await another content request. If the content request is notauthentic (block 2272), the CDN 110 notifies the IRD 106 by, forexample, sending a download rejection (block 2276) and control returnsto block 2266 to await another new content request.

Alternatively, instead of receiving the validation data (block 2268),the received content request (block 2266) could be de-scrambled usingthe current shared secret to verify the authorization and/orauthenticity of the content request (block 2270).

The example process of FIG. 23A begins with an IRD 106 sending a clientregistration (e.g., the client registration message 2104 of FIG. 21) tothe HE 102 (block 2302). The IRD 106 then waits to receive the privatekey (e.g., the private key 2106 of FIG. 21) and the certified public key(e.g., the public key 2108 of FIG. 21) from the HE 102 (block 2304).When the keys are received (block 2304), the IRD 106 stores the keys(block 2306). The IRD 106 may, of course, use a timeout to abandonwaiting to receive the keys (block 2304).

The IRD 106 waits until a user selects a program for viewing and/orplayback (block 2310). When a program selection is received (block2310), the IRD 106 generates a content request. The IRD 106 signs thecontent request with the private key of the IRD 106 (block 2312), andsends the signed content request (e.g., the content request 2112 of FIG.21) and client signature (e.g., the client signature 2114 of FIG. 21) tothe CDN 110 (block 2314). The IRD 106 also sends the certified publickey (e.g., the certified public key 2110 of FIG. 21) to the CDN 110(block 2315). The IRD 106 then downloads the program from the CDN 110(block 2316), sends a download report to the HE 102 (block 2317) andcontrol returns to block 2310 to await another program selection.

In an example, upon sending the content request (block 2312) and/or thesignature (block 2314), and/or the certified public key (block 2315) theIRD 106 starts a count down timer. When the timer expires, the IRD 106ceases waiting for the download to start (block 2316) and controlreturns to block 2310 to wait for another program selection.Alternatively, the IRD 106 may receive a message from the CDN 110indicating that authorization failed.

The example process of FIG. 23B begins with the HE 102 sending a HEpublic key (e.g., the HE public key 2102 of FIG. 21) to the CDN 110. TheHE 102 then waits to receive a client registration (e.g., the clientregistration 2104 of FIG. 21) (block 2332). If a client registration isreceived (block 2332), the CAS 350 (FIG. 3) determines based on, forexample, identifying information in the client registration a privatekey (e.g., the private key 2106 of FIG. 21) (block 2334) and acorresponding public key (e.g., the public key 2108 of FIG. 21) (block2336). The HE 102 sends the private and the certified pubic key to theIRD 106 (block 2338). Later, when a download report is received (block2340), the billing system 355 (FIG. 3) updates the billing record forthe IRD 106 (block 2342) and control returns to block 2340 to awaitanother download report from the IRD 106. As discussed above, thebilling report may be received from the IRD 106 and/or the CDN 110. Theexample process illustrated in FIG. 23B is repeated for each IRD 106 inthe example network of FIG. 1.

The example process of FIG. 23C begins with the CDN 110 waiting toreceive a HE public key (e.g., the HE public key 2102 of FIG. 21) fromthe HE 102 (block 2350). When the HE public key is received (block2350), the CDN 110 stores the HE public key (block 2352).

The CDN 110 waits to receive a content request from an IRD 106 (block2354). If a content request (e.g., the content request 2112 of FIG. 21)is received (block 2354), the CDN 110 waits for a client signature to bereceived from the IRD 106 (block 2356). If a timeout occurs whilewaiting for the client signature (block 2356), the CDN 110 notifies theIRD 106 by, for example, sending an authorization failed response (block2370). If a client signature (e.g., the client signature 2114 of FIG.21) is received (block 2356), the CDN 110 determines if a certifiedpublic key (e.g., the certified public key 2110 of FIG. 21) has beenreceived from the IRD 106 (block 2358). If a timeout occurs whilewaiting for the certified public key (block 2358), the CDN 110 notifiesthe IRD 106 by, for example, sending an authorization failed response(block 2370). If a certified public key is received (block 2358), theCDN 110 verifies the public key received from the IRD 106 using thestored headend public key (block 2360). If the public key received fromthe IRD 106 is not certified (block 2362), the CDN 110 notifies the IRD106 by, for example, sending an authorization failed response (block2370).

If a certified public key was received and certification verified (block2362), the CDN 110 verifies the authenticity of the content requestbased on the client signature using the certified public key (block2364). If the content request is authentic (block 2366), the CDN 110starts transferring the requested content (block 2368) and controlreturns to block 2354 to await another content request. If the contentrequest is not authentic (block 2366), the CDN 110 notifies the IRD 106by, for example, sending a download rejection (block 2370) and controlreturns to block 2354 to wait for another content request.

VI. Additionally Encrypted Broadband Content Delivery

As described above in Sections I and III, to facilitate more efficientutilization of the CDN 110 and/or the Internet 111 and/or to reducecosts associated with operating the example pay content delivery system100 of FIG. 1, a download of a program may be authorized prior todownload. In particular, an IRD 106 may first request an authorizationto download a program and, if the download is authorized, the downloadmay proceed. Multiple methods may be implemented to pre-authorizeprogram downloads. An example method is described below in connectionwith FIGS. 24A-B, 25 and 26A-C. Additional and/or alternative methodsare described in Sections III-V in connection with FIGS. 16-23C.

FIGS. 24A and 24B illustrate example conditional access exchanges thatmay be implemented to authorize a download of an asset prior todownload. In the illustrated example of FIG. 24A, a user of an IRD 106selects a program (e.g., a movie, a TV program, a music video, an assetfile, etc.) for download via the CDN 110. The IRD 106 sends anauthorization request 2405 (e.g., via an authorization request message2405) to the HE 102. The CAS 350 (FIG. 3) determines if the IRD 106 isauthorized to download the program. If the IRD 106 is authorized, theCAS 350 determines a key for additional encryption that will be appliedto the already broadcast encrypted asset file prior to delivery to theIRD 106. The HE 102 then sends the encryption key 2407 (e.g., via a keymessage) to the IRD 106. The HE 102 then sends authorization informationand the encryption key 2410 (e.g., via an authorization message) to theCDN 110. If, in the example of FIG. 24A, the HE 102 determines that anIRD 106 is not authorized to download the program, the HE 102 does notsend authorization information to the CDN 110 and sends an authorizationrejection response to the IRD 106 (not shown). Alternatively oradditionally, the HE 102 may send authorization information 2410 to theCDN 110 that indicates that the IRD 106 is not authorized to downloadthe program.

In the illustrated example of FIG. 24A, the authorization request 2405and/or the encryption key 2407 is preferably communicated via a securecommunication path (i.e., encrypted) within the example pay contentdelivery system 100 of FIG. 1 such as, for instance, via secureback-channel communications (e.g., via the Internet 111). For instance,as illustrated in FIG. 24A, the encryption key 2407 is encrypted beforebeing sent to the IRD 106. Alternatively, the encryption key 2407 may besent over a non-secure path relying instead on the nature of thepoint-to-point communication path established via the Internet 111between the IRD 106 and the HE 102 for security. In another example, theencryption key 2407 is provided to the IRD 106 by the CDN 110 at thetime of download.

The CDN 110 stores the authorization information and the encryption key2410 in, for example, the database 1120 (FIG. 11). When the IRD 106sends a content request 2415 (e.g., via a content request message 2415)to the CDN 110, the request processor 1125 (FIG. 11) determines if theIRD 106 is authorized to download the requested program based onauthorization information stored in, for instance, the database 1120. Inparticular, if the IRD 106 is authorized to download the program, thenthe request processor 1125 is able to locate the authorizationinformation 2410 for the IRD 106 and the requested program. If the IRD106 is authorized to download the program, the encrypter 1130 (FIG. 11)additionally encrypts the already broadcast encrypted asset file usingthe encryption key 2410 and the CDN 110 transfers 2420 the additionallyencrypted asset (i.e., the additionally encrypted contents of the assetfile for the program) to the IRD 106.

After and/or during download, the IRD 106 may decrypt and playback theprogram as described below in connection with FIG. 25. In particular,the IRD 106 may use the encrypted key 2407 and utilize CWP(s) receivedin a satellite signal and/or received from the CDN 110 to determineCW(s) that correctly decrypt the received doubly encrypted data packets.For instance, as illustrated in FIG. 25, since the received asset fileis already additionally encrypted (i.e., super-encrypted) by the CDN 110with the encryption key 2407, the IRD 106 may directly store thedownloaded asset file onto the HDD 425 (FIG. 5). During subsequentdecrypting and playback of the downloaded asset file, the IRD 106utilizes the encryption key 2407 as the CPCW for the asset.Alternatively or additionally, as illustrated in FIG. 25, the IRD 106may immediately decrypt and playback the downloaded asset file using theencryption key 2407 as the CPCW for the asset.

FIG. 24B illustrates an alternative example conditional access exchangethat may be implemented to authorize a download of an asset prior todownload. The illustrated example exchange of FIG. 24B proceedssimilarly to the example exchange illustrated in FIG. 24A. Thus, thedescription of identical portions of FIG. 24A will not be repeated here.Instead, the interested reader is referred back to the correspondingdescription of FIG. 24A. To facilitate this process, like operationshave been numbered with like reference numerals in FIGS. 24A and 24B.

In the illustrated example of FIG. 24B, instead of the HE 102 sendingthe encryption key 2407 to the IRD 106, the HE 102 sends a seed 2450 tothe IRD 106. Like the key 2407 of FIG. 24A, the seed 2450 is preferablycommunicated via a secure communication path or, alternatively, the seed2450 may be sent over a non-secure path relying instead on the nature ofa point-to-point communication path established via the Internet 111. Asdiscussed below in connection with FIG. 25, and in additional detail inFIG. 27, the IRD 106 uses the seed 2450 received from the HE 102 and afamily key (FK) to determine a CPCW which may be used to decrypt andplayback the super-encrypted asset file 2420 received from the CDN 110.The HE 102, knowing the method and FK used by the IRD 106 to determinethe CPCW, also determines the CPCW and sends the CPCW to the CDN 110with the authorization information 2410. Like the example exchange ofFIG. 24A, the CDN 110 uses the key 2410 (i.e., the CPCW) to additionallyencrypt the asset file prior to transferring the asset file to the IRD106. Family keys are discussed in more detail below in connection withFIG. 27.

FIG. 25 illustrates an example encryption configuration for the exampleIRD 106 of FIG. 1. The example configuration of FIG. 25 may be used toreceive, record, decrypt and/or playback additionally encrypted assetfiles received from a CDN 110 via, for instance, one of the exampleexchanges of FIG. 24A or 24B. In the illustrated example of FIG. 25,super-encrypted video data 2505 is received from the CDN 110. Since thecontent 2505 is already additionally encrypted (i.e., it has already hadcopy protection encryption applied), the super-encrypted content 2505may directly stored on the HD 425 without the IRD 106 applying anyadditional encryption. As discussed in more detail in connection withFIG. 27, during decryption and playback of the content 2505, thesecurity chip 524 either decrypts and uses the encrypted key 2407 (FIG.24A) or uses the seed 2450 (FIG. 24B) to determine, for the content2505, a corresponding CPCW 2510. For example, the security chip 524 maydecrypt an encrypted encryption key 2407 using a secret that is uniqueto and embedded within the security chip 524 to determine the CPCW 2510.Alternatively, the security chip 524 scrambles the seed with a FK toobtain the CPCW 2510. In the illustrated examples of FIGS. 24A-B and 25,the CPCW 2510 is the same code word used by the CDN 110 to additionallyencrypt the super-encrypted video data 2505. In the illustrated examplesof FIGS. 24A-B, the code word is provided to the CDN 110 in theauthorization and key message 2410.

In the example of FIG. 25, the CPCW 2510 is provided to and used by theAES decrypter 528 to decrypt the additionally encrypted data 2505thereby obtaining broadcast encrypted video data 2515. The broadcastencrypted video data 2515 may be further decrypted by the DES/AESdecrypter 523/525 using CW(s) 2520. As also discussed in more detailbelow in connection with FIG. 27, in the illustrated example of FIG. 25,the CW(s) 2520 are determined from encrypted CW(s) (ECW(s)) 2525provided to the security chip 524 by a smart card 2530. The ECW(s) areencrypted versions of CW(s) received from the HE 102 via one or moreCWP(s) 2535. The security chip 524 decrypts the ECW(s) 2525 and providesthe CW(s) 2520 to the DES/AES decrypter 523/525. The DES/AES decrypter523/525, in turn, decrypts the broadcast encrypted video data 2515 toobtain unencrypted video data 2540.

In the examples of FIGS. 24A and 24B, the authorization request 2405 maycontain information that the HE 102 may use to verify the identity ofthe IRD 106. For example, an identification number for the smart card2530 inserted in the smart card reader 562 (FIG. 5), an identificationnumber of the IRD 106, a periodically or aperiodically changing numberreceived by the IRD 106 in a satellite signal broadcast by the HE 102,etc. Of course, other examples abound.

Additionally or alternatively, the example content request 2415 of FIGS.24A and 24B may be cryptographically enhanced. For example, any of avariety of cryptographic hashes could be applied to the content request2415 prior to transmission. For instance, the IP address of the IRD 106may be used to scramble the content request 2415 to prevent “copy”and/or “replay” type piracy attacks. If the CDN 110 is unable tocorrectly decipher the content request message 2415 the CDN 110 ignoresthe content request 2415 and/or returns an error message (not shown).The content request 2415 may include a periodically or aperiodicallychanging number received by the IRD 106 in a satellite signal broadcastby the HE 102 to verify that the IRD 106 is currently part of theexample pay content delivery system 100 of FIG. 1. Further,authorization information 2410 received from the HE 102 may expire someperiod of time (e.g., 24 hours) after the authorization information 2410is received.

FIGS. 26A-C illustrate flowcharts representative of example processesthat may be carried out by the IRDs 106, the HE 102 and the CDN 110,respectively, to implement the example conditional access exchanges ofFIGS. 24A and 24B, the example encryption configuration of FIG. 25and/or, more generally, the example pay content delivery system 100 ofFIG. 1. The example processes of FIGS. 26A-C may be executed by aprocessor, a controller and/or any other suitable processing device. Forexample, the example processes of FIGS. 26A-C may be embodied in codedinstructions stored on a tangible medium such as a flash memory, or RAMassociated with a processor (e.g., the processor 8010 shown in theexample processor platform 8000 and discussed below in conjunction withFIG. 35). Alternatively, some or all of the example processes of FIGS.26A-C may be implemented using an ASIC, a PLD, a FPLD, discrete logic,hardware, firmware, etc. Also, some or all of the example processes ofFIGS. 26A-C may be implemented manually or as combinations of any of theforegoing techniques, for example, a combination of firmware and/orsoftware and hardware. Further, although the example processes of FIGS.26A-C are described with reference to the flowcharts of FIGS. 26A-C,persons of ordinary skill in the art will readily appreciate that manyother methods of implementing the example conditional access exchangesof FIGS. 24A-B, the example configuration of FIG. 25 and/or, moregenerally, the example DTH system 100 may be employed. For example, theorder of execution of the blocks may be changed, and/or some of theblocks described may be changed, eliminated, sub-divided, or combined.Persons of ordinary skill in the art will appreciate that the exampleprocesses of FIGS. 26A-C may be carried out sequentially and/or carriedout in parallel by, for example, separate processing threads.

The example process of FIG. 26A begins with an IRD 106 waiting until auser selects a program for viewing and/or playback (block 2602). When aprogram selection is received (block 2602), the IRD 106 generates andsends an authorization request (e.g., the authorization request 2405 ofFIG. 24A or 24B) to the HE 102 (block 2605). The authorization request,as discussed above, may contain information that verifies the identityof the IRD 106. The IRD 106 waits to receive either an, optionallyencrypted, encryption key (e.g., the encryption key 2407 of FIG. 24A) ora seed (e.g., the seed 2450 of FIG. 24B) (block 2607). If a timeoutoccurs while waiting for the encryption key or seed, a rejection messageis displayed (block 2625) and controls returns to block 2602 to wait foranother program selection. When the encryption key or the seed isreceived (block 2607), the IRD 106 either decrypts the receivedencrypted encryption key or determines the encryption key from the seed,and then stores the encryption key (block 2609). The IRD 106 then sendsa content request (e.g., the content request 2415 of FIGS. 24A-B) to theCDN 110 (block 2610). As also discussed above, the content request maybe cryptographically enhanced and/or include information that the CDN110 may use to verify that the IRD 106 is a member of the example paycontent delivery system 100.

If the download is authorized (block 2615), the IRD 106 downloads theprogram from the CDN 110 (block 2620) and decrypts the downloadedprogram for playback using the received encryption key (block 2622).Control then returns to block 2602 to await another program selection.Authorization may be determined by, for example, the start of reception(i.e., download) of the program from the CDN 110. The CDN 110 may,alternatively, send an authorization response message to the IRD 106prior to the start of the download. The IRD 106 may also use a timeoutto determine that the download was not authorized. If neither anauthorization response nor download start occurs, the IRD 106 presents,for example, an authorization denied message to the user (block 2625)and control returns to block 2602 to wait for another program selection.Alternatively, the IRD 106 may retry, one or more times, theauthorization request (block 2605) and/or content request (block 2610).In particular, one retry of the content request (block 2610) may bebeneficial to ensure that the CDN 110 had adequate time to receive andprocess authorization information provided by the HE 102. Alternatively,the IRD 106 may wait a period of time before sending the content requestmessage (block 2610).

The example process of FIG. 26B begins with the HE 102 waiting toreceive an authorization request (e.g., the authorization request 2405of FIG. 24A or 24B) (block 2630). If an authorization request isreceived (block 2630), the CAS 350 (FIG. 3) determines based on, forexample, identifying information in the authorization request, ifdownload of the program is authorized (block 2635). If the download isauthorized (block 2640), the HE 102 determines a seed (e.g., the seed2450 of FIG. 24B) and/or, as described above, an encryption key (e.g.,the encryption key 2407 of FIG. 24A) (block 2645) and sendsauthorization information and the encryption key (e.g., theauthorization information and key 2410 of FIG. 24A or 24B) to the CDN110 (block 2647). The HE 102 then sends either the seed or theencryption key to the IRD 106 (block 2649) and control returns to block2630 to await another authorization request. If the download is notauthorized (block 2640), the HE 102 sends, for example, an authorizationdenied message (block 2652) and control returns to block 2630 to awaitanother authorization request.

The example process of FIG. 26C begins with the CDN 110 waiting until anew event occurs (block 2660). Example new events include receivingauthorization information and/or receiving a content request. If a newevent occurs (block 2660), the CDN 110 determines if authorizationinformation and an encryption key (e.g., the authorization informationand key 2410 of FIG. 24A or 24B) were received from a HE 102 (block2665). If authorization information and an encryption key were received(block 2665), the CDN 110 stores the authorization information and theencryption key in, for example, the database 1120 (FIG. 11) (block 2670)and control returns to block 2660 to await another new event.

If a content request is received from an IRD 106 (e.g., the contentrequest 2415 of FIG. 24A or 24B) (block 2675), the request processor1125 (FIG. 11) determines, as described above, if the IRD 106 isauthorized to download the program (block 2680). If the IRD 106 isauthorized to download the program (block 2685), the encrypter 1130(FIG. 11) additionally encrypts the asset file for the requested contentbased on the encryption key (block 2690), the CDN 110 transfers theadditionally encrypted asset file to the IRD 106 (block 2695) andcontrol returns to block 2660 to wait for another new event. If the IRD106 is not authorized to download the program (block 2685), the CDN 110sends, for example, an authorization denied message to the IRD 106(block 2697) and control returns to block 2660 to wait for another newevent.

VII. Secure Content Sharing in a Home Network

As described above in connection with the example DTH system 100 of FIG.1, a media server 106 (e.g., the example IRD 106 of FIGS. 1 and/or 4-6)may receive secure content (i.e., encrypted content) via thesatellite/relay 104 and/or the CDN 110, and may securely provide thatcontent to one or more clients 114 (i.e., devices 114) communicativelycoupled to the media server 106. In particular, encryption information(e.g., CWP(s)) and/or content is received by the content server 106and/or delivered to the content server 106 as described above inSections I-VI in connection with FIGS. 1-26C. In a presently disclosedexample, the clients 114 support content delivery and/or protection in amethod substantially similar to that implemented by the media server106.

FIG. 27 illustrates an example implementation of protected contentdelivery within a home network of the example pay delivery network 100of FIG. 1. For instance, protected content is delivered between a mediaserver 106 and a client 114 communicatively coupled, as discussed abovein connection with FIGS. 1 and 4-6, to the media server 106. In theexample of FIG. 27, the media server 106 and the client 114 belong to ahome domain with the media server 106 serving as a gateway between theHE 102 and the client 114. In the illustrated example of FIG. 27,protected content 2705 (i.e., encrypted content 2705) that has beendelivered to and/or downloaded by the media server 106 may be securelyprovided and/or delivered to the client 114. In the illustrated exampleof FIG. 27, the protected content 2705 is broadcast encrypted at the HE102 using, for example, DES/AES encryption, such that only authorizedsubscribers of the broadcast service can decrypt the protected content2705. In the example of FIG. 27, the received broadcast encryptedcontent 2705 is additionally protected (i.e., super encrypted) by theAES encrypter 527 such that only an authorized client 114 associatedwith the media server 106 is able to correctly decrypt thesuper-encrypted content 2710.

In the example of FIG. 27, the broadcast system HE 102 providesencryption information (i.e., encrypted keys) to the media server 106and the client 114 that the media server 106 and/or the client 114 eachuse to determine a first encryption secret (i.e., a CW) used by the HE102 to broadcast encrypt the protected content 2705. The media server106 and/or the client 114 use the determined first encryption secret todecrypt the protected content 2705. The HE 102 further providesadditional encryption information (i.e., additional encrypted keys) usedby the media server 106 to determine a second encryption secret (i.e., aCPCW) used by the media server 106 to super-encrypt the protectedcontent 2705 and used by the media server 106 and/or the client 114 tolater decrypt the super-encrypted content 2710. If more than one CW isused by the HE 102 to broadcast encrypt the protected content 2705, themedia server 106 and/or the client 114 determine additional encryptionsecrets from the encrypted keys and use the additional encryptionsecrets to decrypt the protected content 2705. The HE 102 not onlycontrols, as discussed above, secure delivery of content from the HE 102to the media server 106 (i.e., an IRD 106) but also controls securecontent delivery between the media server 106 and the client 114 (i.e.,a device 114). Further, the protected content is delivered and/or storedthroughout the path from the HE 102 via the media server 106 to theclient 114 in an encrypted form and, thus, provides a continuous chainof digital rights protection.

Alternatively, as discussed above in connection with FIGS. 24A-B and 25,the protected content 2705 received at the media server 106 may beadditionally encrypted (i.e., super-encrypted) by a CDN 110. If theprotected content 2705 is received super-encrypted at the media server106, the media server 106 can directly store the super-encrypted content2705 on the HDD 425 without the AES encrypter 527 applying additionalencryption. In this alternative example, the broadcast system HE 102provides encryption information (i.e., encrypted keys) to the mediaserver 106 and the client 114 that the media server 106 and/or theclient 114 each use to determine a first encryption secret (i.e., aCPCW) used by the media server 106 and/or the client 114 to decrypt thesuper-encrypted content 2705. The broadcast system HE 102 furtherprovides additional encryption information (i.e., additional encryptedkeys) to the media server 106 and the client 114 that the media server106 and/or the client 114 each use to determine one or more additionalencryption secrets (i.e., CW(s)) used by the media server 106 and/or theclient 114 to decrypt the broadcast encrypted video formed by thedecryption of the super-encrypted content 2705 with the determined firstencryption secret.

In the illustrated example of FIGS. 1 and 27, each security chip (e.g.,the security chip 524) in a media server 106 and/or client 114 isidentified by a unique receiver identifier (RID) (e.g., a RID 2718) andcontains a unique secret (US) (e.g., a US 2780) embedded duringmanufacturing. The RID may be used by other devices (e.g., the HE 102)to identify the server 106 and/or the client 114. In response to aregistration request containing a RID, the HE 102 sends, for aregistered and authorized media server 106 or client 114, one or moreconditional access packets (CAPs) that contain encryption information.In the example of FIG. 27, CAPs are sent to the media server 106 and, asdiscussed below, the media server 106 is responsible for passing alongto a client 114 the encryption information for the client 114. In theillustrated examples of FIGS. 1 and 27, the operator of the HE 102manufactures, sells, and/or otherwise provides the security chips and,thus, knows the valid combinations of RID and US values. Further, the HE102 maintains and accesses a table of RID and US values.

An example CAP is a RID message (MSG) 2712 associating a RID with aFamily Key (FK) and a Pairing Key (PK). In the examples of FIGS. 1 and27, the FK and PK sent in a RID MSG 2712 are encrypted using the USassociated with the RID of the receiving media server 106 or client 114,for example, the RID 2718 or a RID* 2720, respectively. That is, HE 102provides encrypted versions of the FK and the PK unique to each of themedia server 106 and the client 114. In the example of FIG. 27, themedia server 106 and the associated clients 114 share a FK and PK, buteach RID MSG 2712 contains a uniquely encrypted version of the FK andPK. For example, an encrypted FK (EFK) 2714 (i.e., a first encryptedversion of the FK) encrypted for the media server 106 will be encryptedusing the unique secret (US) 2780, contained within the security chip524 and associated with the RID 2718, for the media server 106 and willnot be decryptable by another media server 106 or any client 114.Likewise, an encrypted FK (EFK*) 2716 (i.e., a second encrypted versionof the FK) encrypted for the client 114 will be encrypted using the US2785 of the client 114. In the example of FIGS. 1 and 27, the mediaserver 106 is aware of the RID(s) (e.g., the RID* 2720) for each of itsassociated clients 114.

Another example CAP is a PEK MSG that contains, for the smart card 2730,a personal entitlement key (PEK) that the smart card 2730 may use toencrypt received CWP(s) 2722 prior to storing the received CWP(s) 2722on the HDD 425. Likewise, the smart card 2730 may use the PEK to decryptpreviously encrypted and stored received CWP(s) 2722.

Another example CAP for the smart card 2730 is a PK MSG 2723 containingthe PK. In the illustrated example of FIGS. 1 and 27, the smart card2730 extracts CW(s) from the received CWP(s) 2722. The smart card 2730then uses the PK received in the PK MSG 2723 to encrypt the thusreceived CW(s) forming encrypted CW(s) (ECW(s)) that are sent to thesecurity chip 524. In turn, the security chip 524 may use the US 2780 todecrypt the EPK 2726, and the decrypted EPK 2726 to obtain the CW(s)2732 from the ECW(s) 2738.

In the illustrated example of FIG. 27, the HE 102 provides at least aRID MSG 2712 for a media server 106 or a client 114 when the mediaserver 106 or the client 114 is registered. The HE 102 determines if themedia server 106 or the client 114 is authorized to receive protectedcontent and, if authorized, sends a RID MSG 2712 for the media server106 or the client 114 to the media server 106. It will be readilyapparent to persons of ordinary skill in the art that the example CAPsdiscussed above may be split or combined. Further, CAPs may be used toconvey contain different and/or additional encryption information tothat discussed above.

To store encryption information received in a RID MSG 2712, the examplemedia server 106 of FIG. 27 includes a table 2725. The table 2725 may bestored in any computer readable device, for example, the HDD 425, theSRAM 506 (FIG. 5), etc. An example table 2725 contains, for the mediaserver 106 and each registered client 114 (i.e., for each RID), an EFKand an encrypted PK (EPK) (e.g., EPK 2726 or EPK* 2728). When, forinstance, the EFK* 2716 and the EPK* 2728 are required by the client114, the media server 106 (e.g., the CPU 507 (FIG. 5) may look up, basedupon the RID* 2720 of the client 114, the EFK* 2716 and the EPK* 2728for the client 114, and send the EFK* 2716 and the EPK* 2728 to theclient 114. In the examples of FIGS. 1 and 27, the HE 102 may change thevalues of PK and/or FK from time to time. To properly decrypt andplayback recorded content, the IRD 106 requires the same PK and FKvalues that were used for recording. Thus, the example RID table 2725 ofFIG. 27 contains new and old values of EPK 2726, EFK 2714, EPK* 2728 andEFK* 2716, allowing the media server 106 to look up the appropriatevalues, based upon the time when a program was recorded.

As described above, each CWP 2722 contains information that may be usedby the smart card 2730 to determine a CW 2732 used by the HE 102 tobroadcast encrypt a portion of the encrypted video 2705. Received CWP(s)2722 may be stored and/or utilized by the example IRD 106 of FIGS. 1 and27 using any of a variety of methods. In an example, received CWP(s)2722 are encrypted by the smart card 2730 with a PEK received in a PEKMSG and then stored on the HDD 425. During playback, the encryptedCWP(s) 2722 can be obtained from the HDD 425 and then decrypted by thesmart card 2730 to obtain the CWP(s) 2722, and then further processed bythe smart card 2730 to determine the CW(s) 2732. The CW(s) 2732 may thenbe encrypted with a PK and the ECW(s) 2738 are provided to the securitychip 524. The security chip 524 decrypts the ECW(s) 2738 to obtain theCW(s) 2732.

In another example, the CWP(s) 2722 may be encrypted by the IRD 106using other encryption keys such as, for example, a CPCW 2734.Alternatively, the IRD 106 stores received CWP(s) 2722 on the HDD 425without first encrypting them. In a further example, the smart card 2730determines the CW(s) 2732 from the CWP(s) 2732 at recording time, uses aPK received in a PK MSG 2723 to encrypt the CW(s) 2732, and then the IRD106 stores the resulting ECW(s) 2738 on the HDD 425. During playback,the security chip 524 (or the smart card 2730) obtains the ECW(s) 2738from the HDD 425 and the security chip 524 decrypts them with the PK toobtain the CW(s) 2732.

In yet another example, the smart card 2730 obtains CW(s) 2732 fromreceived CWP(s) 2722 at recording time, and then encrypts them with a PKto form ECW(s) 2738. The resultant ECW(s) 2738 and the CWP(s) 2722 arethen encrypted with a PEK and stored on the HDD 425. During playback,the smart card 2730 obtains the encrypted ECW(s) 2738 from the HDD 425,decrypts them using the PEK, and provides the ECW(s) 2738 to thesecurity chip 524. The security chip 524 then decrypts them using the PKto obtain the CW(s) 2732. Other examples abound.

In the examples of FIGS. 1 and 27, when the media server 106 plays backreceived and/or stored video data 2705, the security chip 524 and/or thesmart card 2730 using, for instance, one of the example methodsdescribed above, obtains the CW(s) 2732 for the program being playedback. The security chip 524 then provides the CW(s) 2732 to the DES/AESdecrypter 523/525. The DES/AES decrypter 523/525 subsequently uses theCW(s) 2732 to decrypt the broadcast encrypted video.

To determine the CPCW 2734 that may be used to additionally encrypt(i.e., super-encrypt) the broadcast encrypted video 2705 and/or todecrypt super-encrypted video 2710, a security device (e.g., thesecurity chip 524) obtains the EFK 2714 from the table 2725, decryptsthe EFK 2714 based on the US 2780, and then scrambles (i.e., encrypts,decrypts or cryptographically hashes) a seed number 2736 with thedecrypted EFK 2714 to form the CPCW 2734. An example seed number 2736 isthe content identifier for the broadcast encrypted video 2705. Otherexample seed numbers 2736 include a random number, an encrypted key orencrypted CPCW delivered from the HE 102.

When, for instance, the client 114 requests content (e.g., the content2705) from the media server 106 (e.g., via a content request message),the media server 106 obtains the ECW(s) 2738 for the requested content2705 from the smart card 2730. The media server 106 provides to theclient 114 the ECW(s) 2738, the EFK* 2716, the EPK* 2728, the seednumber 2736 for the requested content, and the super-encrypted content2710. In the example of FIG. 27, the file on the HDD 425 for thesuper-encrypted content 2710 is simply transferred to the client 114via, for instance, the interface module 550 (FIG. 5) using any of avariety of file transfer techniques. For example, the file may betransferred to a client 114 using FTP via the network interface 435(FIG. 5) and the home network 116 (FIG. 1). In particular, in theexamples of FIGS. 1 and 27, no encryption and/or decryption are appliedto the file prior to and/or during sending the file to the client 114.

Similarly to that described above for the media server 106, the client114 determines the CPCW 2734 and CW(s) 2732 that may be used to decryptthe super-encrypted content 2710. In particular, a security device(e.g., a security chip 2740) uses the US* 2785 to decrypt both thereceived EFK* 2716 and the received EPK* 2728. The security chip 2740then scrambles the received seed number 2736 with the decrypted EFK*2716 to determine CPCW 2734 that may be used by an AES decrypter 2745 todecrypt the super-encrypted video 2710. The security chip 2740 alsodecrypts the received ECW(s) 2738 using decrypted EPK* 2728 to obtainthe CW(s) 2732 that may be used by a DES/AES decrypter 2750 to furtherdecrypt the output of the decrypter 2745 (i.e., broadcast encryptedvideo).

An example implementation of a client 114 may utilize substantiallysimilar components, devices and/or modules to those used to implementthe example IRDs 106 illustrated in FIGS. 4-6. For instance, thesecurity chip 2740, the AES decrypter 2745 and the DES/AES decrypter2750 may be identical to the security chip 524, AES decrypter 528, andthe DES/AES decrypter 523/525 of the example IRDs 106, respectively.Further, an example client 114 may not contain all the elements of theexample media servers 106 of FIGS. 4-6. For instance, an example client114 is implemented without the front end modules 510, the splitter 570,the tuners 575, the AES encrypter 527 and the smart card reader 562.

FIGS. 28A and 28B illustrate an example protected content deliveryexchange for the example pay delivery network 100 of FIG. 1. Theillustrated example exchange of FIGS. 28A and 28B proceeds similarly tothe example implementation discussed above in connection with FIG. 27.To facilitate ease of understanding, like elements have been numberedwith like reference numerals in FIGS. 27 and 28A-B.

Turning to FIG. 28A, in response to a registration request for a mediaserver 106 (not shown), the HE 102 determines the authorization for themedia server 106 and generates the FK, PK and PEK keys for the homedomain. The HE 102 sends a PK MSG 2810 for the smart card 2730 thatcontains the PK for the media server 106 and a PEK MSG 2814 for thesmart card 2730 that contains the PEK. The HE 102 also sends a RID MSG2816 to the authorized media server 106 that includes the RID 2718, theEPK 2726, and the EFK 2714. The media server 106 updates and/or stores,based upon the RID 2718, the EPK 2726 and the EFK 2714 in the table2725. Likewise, in response to a registration request from a client 114(not shown), the HE 102 determines the authorization for the client 114and sends a RID MSG 2818 to the media server 106 containing the RID*2720, EFK* 2716 and EPK* 2728. The information received in the RID MSG2818 is likewise stored by the media server 106 in the table 2725. Fromtime to time the example HE 102 of FIGS. 1 and 28A may generate newvalues of the FK, PK and PEK and send them to the media server 106 asdescribed above. The example media server 106 of FIGS. 1, 27 and 28Aindexes the received FK, PK and PEK values according to time period andstores them in the RID table 2725.

The security chip 524 decrypts the EFK 2714 indicated with referencenumeral 2820 and uses the decrypted EFK 2714 to scramble the seed number2736 indicated with reference numeral 2822 to obtain the CPCW 2734indicated with reference numeral 2824. The encrypter 527 uses the CPCW2734 to encrypt the received broadcast encrypted video 2705 indicatedwith reference numeral 2826 and stores the super-encrypted video 2710 onthe HDD 425 as indicated with reference numeral 2827. When CWP(s) 2722are received by the media server 106 as indicated with reference numeral2828, the media server 106 and/or the smart card 2730, using any of themethods described above, processes, handles and/or stores the receivedCWP(s) 2722. In the example of FIG. 28A, the smart card 2730 encryptsthe CWP(s) 2722 with the PEK received in, for example, the PEK MSG 2814,and stores the encrypted CWP(s) 2722 on the HDD 425 as indicated withreference numeral 2829.

Continuing with FIG. 28B when the client 114 sends a content request andthe RID* 2720 to the media server 106 as indicated with referencenumeral 2830. At the media server 106, the CPU 507 (FIG. 5) uses thereceived RID* 2720 of the client 114 as indicated with reference numeral2831 to lookup in the table 2725 the EFK* 2716 and the EPK* 2728 asindicated with reference numeral 2832. Using any of the methodsdescribed above, the smart card 2730 and/or the security chip 524 obtainand/or determine the ECW(s) 2738. In the illustrated example of FIG.28A, the smart card 2730 obtains encrypted CWP(s) 2722 stored on the HDD425 as designated with reference numeral 2833. The smart card 2730 thenuses the PEK to decrypt the encrypted CWP(s) 2722 to determine the CW(s)2732 from the CWP(s), encrypts the CW(s) 2732 with the PK, and sends theECW(s) 2738 to the CPU 507 as indicated with reference numeral 2834. Themedia server 106 (e.g., the CPU 507) then sends the seed number 2736,the ECW(s) 2738, the EPK* 2728, and the EFK* 2716 to the client 114 asindicated with reference numeral 2836. As indicated by reference numeral2838, the media server 106 also sends the super-encrypted video 2710 tothe client 114.

At the client 114, the security chip 2740 decrypts the EFK* 2716 usingthe US* 2785 and uses the decrypted EFK* 2716 and the seed number 2736to determine the CPCW 2734 (indicated with reference numeral 2840) thatthe decrypter 2745 uses to decrypt the super-encrypted video 2710. Thesecurity chip 2740 also uses the US* 2785 to decrypt the EPK* 2728 anduses the decrypted EPK* 2728 to decrypt the ECW(s) 2738 as indicated byreference numeral 2842. The decrypter 2750 uses the decrypted ECW(s)2738 (i.e., the CW(s) 2732) to further decrypt the broadcast encryptedvideo 2844 output by the decrypter 2745 to obtain the requestedunencrypted content 2846.

In the illustrated examples of FIGS. 1, 27 and 28A-B the PK and/or theFK and/or the PEK may be updated and/or changed. In particular, thetable 2725 may store a current EPK (e.g., EPK* 2728) and a current EFK(e.g., EFK* 2716) for each media server 106 and each client 114 as wellas a future EPK and future EFK. For example, when a new EFK 2714 isreceived via a RID MSG 2712, the RID MSG 2712 indicates when the new EFK2714 is to become active, and, at the indicated time, the old EFK 2714is expired and the new EFK 2714 is utilized for future content deliverybetween the media server 106 and the client 114. If the FK is updated,one or more old EFK 2714 and/or EFK* 2716 values may be retained by themedia server 106 to allow the media server 106 and/or the client 114 tocorrectly decrypt the previously super-encrypted content 2710 stored onthe HDD 425 that depends upon the current or previous FK for decryption.Alternatively, previous super-encrypted content 2710 may be decryptedand re-super encrypted.

In another example, the value of the PEK is updated with a new PEK MSG2814. The PEK MSG 2814 indicates when the new PEK is to become active.If the PEK is updated, one or more old PEK values may be retained by thesmart card 2730 in order to correctly decrypt the previously encryptedCWP(s) 2722 stored on the HDD 425. Alternately, one or more old PEK MSGs2714 may be retained by the IRD 106.

In yet another example, the HE 102 updates the value of the PK bysending a new PK MSG 2810 to the smart card 2730 and sending a new EPK(e.g., EPK 2726, EPK* 2728) containing the new PK to the media server106 and/or the client 114 via one or more RID MSGs. The smart card 2730may determine when to begin using the new PK, or it may be instructedfrom the HE 102 in the PK MSG 2810 or via the CWP(s) 2722. In anexample, the new PK is used to encrypt the CW(s) 2732 at playback time,so that previous PK values are not required, and the PK values canchange frequently. In another example, the PK is used to encrypt theCW(s) 2732 at recording time, and the resulting ECW(s) 2738 are storedon the HDD 425. In this example, the media server 106 retains one ormore old EPK 2726 and/or EPK* 2728 values to allow the media server 106and/or the client 114 to correctly decrypt the broadcast-encryptedcontent 2710 stored on the HDD 425. In yet another example, all or partof the PK value is required by the smart card 2730 to obtain the CW(s)2732 from the CWP(s) 2722, such as where the PK may have a commonportion that is shared amongst all authorized subscribers during aparticular period of time, so that the smart card 2730 retains the newPK and one or more old PK values to obtain the CW(s) 2732 for correctviewing of the live broadcast or the recorded content. In this example,previous values of PK, EPK 2726 and/or EPK* 2728 are required tocorrectly decrypt content from the HDD 425.

The media server 106 may also contain unencrypted content on the HDD 425such as, for example, equipment demonstrations, advertisements,instructions, etc. In the example systems of FIGS. 1, 27 and 28A-B, themedia server 106 may provide such unencrypted content to any client 114,even an unauthorized client 114. In particular, the unencrypted contentmay be sent by the media server 106 to a client 114 in the clear (i.e.,without any applied encryption and/or security).

FIGS. 29, 30 and 31 illustrate flowcharts representative of exampleprocesses that may be carried out by the media server 106, the client114 and the HE 102, respectively, to implement the exampleimplementation of FIG. 27, the example exchange of FIGS. 28A-B and/or,more generally, the example pay content delivery network 100 of FIG. 1.The example processes of FIGS. 29-31 may be executed by a processor, acontroller and/or any other suitable processing device. For example, theexample processes of FIGS. 29-31 may be embodied in coded instructionsstored on a tangible medium such as a flash memory, or RAM associatedwith a processor (e.g., the processor 8010 shown in the exampleprocessor platform 8000 and discussed below in conjunction with FIG.35). Alternatively, some or all of the example processes of FIGS. 29-31may be implemented using an ASIC, a PLD, a FPLD, discrete logic,hardware, firmware, etc. Also, some or all of the example processes ofFIGS. 29-31 may be implemented manually or as combinations of any of theforegoing techniques, for example, a combination of firmware and/orsoftware and hardware. Further, although the example processes of FIGS.29-31 are described with reference to the flowcharts of FIGS. 29-31,persons of ordinary skill in the art will readily appreciate that manyother methods of implementing the example implementation of FIG. 27, theexample exchange of FIGS. 28A-B and/or, more generally, the illustratedexample of FIG. 1 may be employed. For example, the order of executionof the blocks may be changed, and/or some of the blocks described may bechanged, eliminated, sub-divided, or combined. Persons of ordinary skillin the art will appreciate that the example processes of FIGS. 29-31 maybe carried out sequentially and/or carried out in parallel by, forexample, separate processing threads.

The example process of FIG. 29 begins with a media server 106 waitingfor a new event such as, for example, a request for content from aclient 114 to occur (block 2902). When a new event occurs (block 2902),the media server 106 determines the type of the new event.

If the new event (block 2902) is a selection, for example, by a user ofthe media server 106, to record a selected program (block 2910), asecurity device (e.g., the security chip 524) generates, as describedabove, from the EFK 2714 and, for example, a content identifier 2736 forthe selected program, a CPCW 2734 (block 2912). The AES encrypter 527(FIG. 5 or 27) then starts additionally encrypting (i.e.,super-encrypting) the received broadcast encrypted video 2705 (block2914) and the media server 106 starts storing the super-encrypted video2710 on, for example, the HDD 425 (block 2916). The super-encrypting(block 2914) and the storing (block 2916) continue until recording ofthe selected program is complete and/or recording is canceled and/orinterrupted. Methods for continuing to record a selected program duringinterruptions and/or recording a selected program for which broadcasthas already started are discussed in Section II and in connection withFIGS. 13-15. Control then returns to block 2902 to await another newevent.

If the new event (block 2902) is a request for content from a client 114(block 2920), a security device (e.g., the CPU 507 associated with themedia server 106 (FIG. 5)) determines if the client 114 is authorized(block 2921). For example, the media server 106 may check to see thatthe client 114 has a valid EPK* 2728 and a valid EFK* 2716 in the table2725. If the client 114 is not authorized (block 2921), the media server106 sends a rejection response (e.g., a message) to the client 114(block 2922) and control returns to block 2902 to wait for another newevent.

If the client is authorized (block 2921), a possibly different securitydevice (e.g., the smart card 2730) decrypts the encrypted CWP(s) 2722stored on, for example, the HDD 425, and determines the correspondingCW(s) 2732 (block 2923). The smart card 2730 then encrypts the CW(s)2732 with the PK to form the ECW(s) 2738 (block 2924). Any of the othermethods described above for obtaining ECW(s) 2738 may additionally oralternatively be implemented. The media server 106 obtains, based on theRID* 2720 of the client 114, the EFK* 2716 and the EPK* 2728 from, forinstance, the table 2725 (block 2926). The media server 106 sends thecontent identifier 2736 for the requested content, the ECW(s) 2738, theEPK* 2726 and the EFK* 2716 to the client 114 (block 2928) and thentransfers the requested content 2710 from the HDD 425 to the client 114(block 2930).

If the new event (block 2902) is the receipt of another CWP 2722 (block2940), a security device (e.g., the smart card 2730) encrypts thereceived CWP 2722 (block 2942) and stores the encrypted CWP 2722 in, forexample, the HDD 425 (block 2944) and control returns to block 2902 toawait a new event. Any of the other methods described above forprocessing, handling and/or storing received CWP(s) 2722 mayadditionally or alternatively be implemented.

If the new event (block 2902) is receipt of a RID MSG 2712 (block 2960),a security device (e.g., the CPU 507 associated with the media server106) updates the table 2725 with the information received in the RID MSG2712 (block 2962) and control returns to block 2902 to await a newevent.

If the new event (block 2902) is receipt of a PK MSG 2712 or a PEK MSG(block 2970), a security device (e.g., the smart card 2730) updates theencryption information (e.g., the PK or the PEK) stored in the smartcard 2730 with the new and/or additional encryption information receivedin the PK MSG 2723 or PEK MSG (block 2972) and control returns to block2902 to await a new event.

The example process of FIG. 30 begins with a client 114 waiting for auser of the client 114 to select a program for viewing (block 3002).When a selection is made (block 3002), the client 114 sends a contentrequest (e.g., the request 2830 of FIG. 28B) to a media server 106(block 3004) and then waits to receive encryption information and thesuper-encrypted video 2710 from the media server 106 (block 3006).Example encryption information includes a content identifier 2736 forthe requested content, the ECW(s) 2738 for the requested content, theEPK* 2728 and the EFK* 2716. If a timeout occurs while waiting forencryption information or super-encrypted video 2710 (block 3006), thenan error message is displayed (block 3007) and control returns to block3002 to await a new event.

When the encryption information and the super-encrypted video isreceived (block 3006), a security device (e.g., the security chip 2740)decrypts the received EPK* 2726 and EFK* 2716 (block 3008). The securitychip 2740 then determines the CPCW 2734 from the decrypted EFK* 2716 andthe content identifier (i.e., the seed) (block 3010) and determines theCW(s) 2732 from the decrypted EPK* 2726 and the ECW(s) 2738 (block3012). The decrypter 2745 decrypts the received super-encrypted video2710 with the CPCW 2734 (block 3014) and then the decrypter 2750 furtherdecrypts the resultant broadcast encrypted video with the CW(s) 2732(block 3016). The client 114 then decodes and displays the selectedprogram for the user (block 3018) and control returns to block 3002 toawait another selection.

The example process of FIG. 31 begins with a HE 102 waiting for arequest to register a new media server 106 or a new client 114 (block3102). When a registration request is received (block 3102), the CAS 350(FIG. 3) determines if the new media server 106 or client 114 isauthorized to join the content delivery network 100 (block 3104). If themedia server 106 or the client 114 is not authorized (block 3104), theHE 102 sends a rejection response to the requesting media server 106 orclient 114 (block 3105). Control returns to block 3102 to wait foranother registration request.

If the media server 106 or client 114 is authorized (block 3104), theCAS 350 determines if the registering device is a media server 106(block 3106). If the registering device is a server (block 3106), theCAS 350 determines a PK, a FK and a PEK (block 3108) and sends the PKand PEK to the smart card 2730 (block 3110).

The CAS 350 encrypts the FK of the home domain with the US (e.g., US2780 or US 2785) associated with the RID (e.g., the RID 2718 or the RID*2720) of the registering device and encrypts the PK of the home domainwith the US (e.g., US 2780 or US 2785) associated with the RID of theregistering device (block 3112). The CAS 350 creates a RID MSGcontaining the encrypted FK and the encrypted PK (block 3114) and sendsthe RID MSG to the media server 106 or, for a registering client 114, toa media server 106 to which the client 114 is communicatively coupled(block 3116). Control then returns to block 3102 wait for anotherregistration request.

VIII. Secure Content Transfer

As described above in connection with the example DTH system 100 of FIG.1, a content server 106 (e.g., the example IRD 106 of FIGS. 1 and/or4-6) may receive secure content (i.e., encrypted content) via thesatellite/relay 104 and/or the CDN 110, and may securely exchangecontent with one or more devices 114 communicatively coupled to thecontent server 106. In particular, encryption information (e.g., a CWP)and/or content is received by the content server 106 and/or delivered tothe content server 106 as described above in Sections I-VI and inconnection with FIGS. 1-26C. In a presently disclosed example, thedevices 114 (i.e., DRM clients 114) support media files protected withany variety of digital rights management (DRM) technology such as, forexample, Microsoft® Windows Media® DRM technology. In the illustratedexample of FIG. 1, the content server 106 may transfer content to and/orfrom the DRM clients 114.

FIGS. 32A and 32B illustrate example secure content transfers that maybe implemented to securely transfer protected content between a contentserver 106 and a DRM client 114. The illustrated example exchange ofFIG. 32A is begun when any variety of content transfer initiation 3205is detected and/or determined. Example content transfer initiations 3205include: when a DRM client 114 is communicatively coupled to the contentserver 106; when a DRM client 114 sends a content request to the contentserver 106; when a content transfer request and/or command is receivedat the content server 106 from, for instance, the client 114, the HE102, the DRM license server 118, via the Internet 111, etc.; via anyvariety of menu and/or interface provided by the content server 106and/or the DRM client 114 to a user of the DRM client 114 and/or thecontent server 106; a content management application executing on thecontent server 106; etc. While the following discussion illustrates theflow of content to the DRM client 114 from the content server 106,persons of ordinary skill in the art will readily appreciate that thedisclosed methods and apparatus may be used to transfer content from theDRM client 114 to the content server 106. In response to the detectedand/or determined content transfer initiation 3205 and using any of avariety of communication paths and/or techniques discussed above, thecontent server 106 sends a content transfer authorization request to theHE 102 and, in particular, to the key server 350 (i.e., CAS 350 (FIG.3)) as signified with reference numeral 3210.

Based on the contents of the content transfer authorization request3210, the key server 350 identifies the content server 106, the DRMclient 114 and the requested content (e.g., movie title). The key server350 also determines an entitlement key (KE) (i.e., an encryption key orsecret) for the secure content transfer.

The key server 350 sends to the DRM license server 118 a contenttransfer license request 3220, and the KE as indicated with referencenumeral 3225. An example license request 3220 includes contentidentifier information (e.g., song title), DRM client 114 identificationinformation, payment information, etc. The key server 350 also sends, assignified by reference number 3230, DRM requirements for the requestedlicense such as, for example, expiration date, number of playbacks, etc.

If the content transfer is allowable, the example DRM license server 118of FIG. 32A responds with a license that includes the KE and therequirements embedded within. In the example of FIG. 32A thedetermination of whether the content transfer is allowable is made atthe DRM license server 118 to which the content server 106 iscommunicatively coupled directly and/or indirectly. As discussed below,the determination may, additionally or alternatively, be made at thecontent server 106 in an example where the DRM license server 118 isimplemented by and/or within the content server 106. In the example ofFIG. 32, the license with the embedded KE is provided to the key server350 as indicated with reference numeral 3235 and is then forwarded via,for example, the satellite/relay 104 as indicated with reference numeral3240 to the content server 106. In particular, the key server 350, usingmethods discussed above, securely delivers the license with the embeddedKE to the content server 106. Additionally, the key server 350, usingmethods discussed above, encrypts the KE and securely delivers theencrypted KE to the content server 106 as indicated with referencenumeral 3242. For instance, the key server 350 may encrypt the KE withthe US 2780 (FIG. 27) of the content server 106. The content server 106,in turn provides the license with the embedded KE, as indicated withreference numeral 3245, to the DRM client 114. Alternatively, asdiscussed above in connection with FIGS. 24B and 25, instead of the keyserver 106 sending the encrypted KE 3242 to the content server 106, thekey server 350 may send a seed that the content server 106 may use inconjunction with a decrypted EFK 2714 (FIG. 27) to determine the KE.Additionally or alternatively, as discussed above in connection withFIGS. 27 and 28A-B, the content server 106 may select a random number asa seed number to use in conjunction with a decrypted EFK 2714, fordetermining the value of KE for encrypting the transferred content, andwhich seed number the content server 106 may send to the key server 350for determining the value of KE 3225 to send to the DRM license server118. An example seed number that depends on the content itself is a hashof the content data and is, for example, computed by the content server106 and sent to the key server 350. Another example seed number thatdepends on the content is based on a number, such as, for example, acontent identifier, known at the key server 350 and/or the contentserver 106, so that a KE based on the seed is unique for each piece ofunique content delivered by the content server 106. Additionally andalternatively, the seed number used by the content server 106 and thekey server 350 may be based on the digital rights license terms, and/ora hash thereof, so that a KE based on the seed is unique for eachcategory of licensed content delivered by the content server 106. Eventhough a seed number based the content itself, on a content identifierand/or license terms may be the same at different content servers 106, aresulting KE will be unique due to the different US 2780 and/ordecrypted EFK 2714 at each content server 106. Furthermore, if desired,the resulting KE value may be the same for two or more content servers106 that are part of a same home network and which share a samedecrypted EFK 2714 value, i.e., the same FK distributed by the CAS 350as described above with reference to FIGS. 27-31.

In the illustrated examples of FIGS. 1 and 32A-B, the content server 106uses the received encrypted KE 3242 and/or a KE determined from areceived seed 3242 to encrypt the content to be transferred. Forexample, for super-encrypted content stored on the HDD 425 (FIG. 5) thecontent server 106 decrypts the super-encrypted content with the CPCWand CW as discussed above in FIG. 7, and then uses the encrypter 527and, more generally, the transport module 520 (FIG. 5) to encrypt thecontent with the KE prior to transferring (i.e., sending) the encryptedcontent to the DRM client 114. In another example, for content currentlybeing streamed to the media server 106 via the satellite/relay 104and/or the CDN 110, the media server 106 decrypts the received encryptedcontent with the CW and then encrypts the resultant unencrypted contentwith the KE before securely transferring (i.e., streaming or copying)the content to the DRM client 114. As discussed below, the KE isprovided to the DRM client 114 such that the DRM client 114 cancorrectly decrypt and view the securely transferred content. Only alicensed DRM client 114 can extract the embedded KE used to encrypt thecontent.

In the illustrated example of FIG. 32A, once the content server 106provides the license with the embedded KE 3245 to the DRM client 114,the content server 106 and the DRM client 114 transfer the content asshown with reference numeral 3255. For example, the content server 106sends the content 3255 that has been encrypted with the KE to the DRMclient 114 and, having received the license and the embedded KE 3245,the DRM client 114 is able to successfully decrypt the receivedencrypted content 3255. The DRM client 114 may further store thereceived license 3245 and encrypted content 3255 for later decryptionand playback, if permitted by the DRM requirements in the license 3245.

A content transfer authorization request 3210 may be sent not only inresponse to a content transfer initiation 3205, but additionally oralternatively to, for example, register and/or obtain a content transferauthorization for a current, new and/or additional DRM client 114.Moreover, a content transfer authorization request 3210 could be used toobtain an encrypted KE 3242 applicable to the transfer of one or moretype(s) of content such as, for example, all broadcast television shows,a subscription movie channel, etc. In such examples, the encrypted KE3242 received by the content server 106 may be valid for a period oftime such as, for example, a month. Such time period enabled encryptedKE 3242 may be periodically or aperiodically renewed by the HE 102and/or at the request of the DRM client 114, the content server 106and/or a user. For such time period enabled encrypted KEs 3242, when acontent transfer initiation 3205 is detected, the content server 106 maycheck to see if a valid encrypted KE 3242 is available for the contentand/or content type to be transferred. If a valid encrypted KE 3242 isavailable, the content server 106 encrypts the content to be transferredand transfers the encrypted content without first sending a contenttransfer authorization request 3210 to the HE 102. Further still, asdiscussed above, the license and embedded KE 3245 provided to the DRMclient 114 may be valid for a period of time and may be periodically oraperiodically renewed by the HE 102 and/or at the request of the DRMclient 114, the content server 106 and/or a user. Such renewals includethe issuance of a fresh license valid for an extended period and thesame KE and license terms as the expired license, so that existingencrypted content available to the DRM client 114 may continue to beviewed via the DRM client 114 for the extended period. The same KE maybe derived from a stored seed value, or a seed value based on thecontent itself, a content identifier and/or license terms may beregenerated in order to determine the same KE for license renewal.Furthermore, if a license is shared among many current and futurecontent programs (such as all broadcast television shows, or all movieson a subscription movie channel) then a renewed license may be deliveredto the DRM client 114 on a periodic basis, allowing current and/orfuture programs to be delivered to that client 114 under the protectionof the original and renewed license.

Additionally or alternatively, the content server 106 may provide to thekey server 350 any variety of random number such as, for example, a seedthat the content server 106 uses to generate the key 3225 and that thekey server 350 uses to determine the key 3225 that it provides to theDRM license server 118. In this fashion, the key server 350 may skip theproviding of the encrypted KE 3242 to the content server 106 illustratedin the example of FIG. 32A.

FIG. 32B illustrates an alternative example secure content transfer thatmay be implemented to securely transfer protected content between acontent server 106 and a DRM client 114. The illustrated exampleexchange of FIG. 32B proceeds similarly to the example exchangeillustrated in FIG. 32A. Thus, the description of identical portions ofFIG. 32A will not be repeated here. Instead, the interested reader isreferred back to the corresponding description of FIG. 32A. Tofacilitate this process, like operations have been numbered with likereference numerals in FIGS. 32A and 32B.

In the illustrated example of FIG. 32B, the DRM license server 118 isable to communicate with the DRM client 114 via the Internet 111. Thus,the license server 118 may send the license and the KE to the DRM client114 via the Internet 111 as indicated with reference numeral 3240.Having received the encrypted KE 3242, determined the KE from a seed3242 and/or a previously received applicable encrypted KE 3242, thecontent server 106 may, as discussed above, encrypt the requestedcontent and (pre-)transfer the encrypted content to the DRM client 114as indicated with reference numeral 3255. In the illustrated example ofFIG. 32B, the DRM client 114 will be unable to correctly decrypt theencrypted content 3255 until the DRM client 114 receives a valid contenttransfer license with the embedded KE from the DRM license server 118.

It will be readily apparent to persons of ordinary skill in the art thatalternative secure content transfer exchanges to those illustrated inFIGS. 32A and 32B may be implemented. For example, the license and key3240 may be delivered from the DRM license server 118 and/or the keyserver 350 to the content server 106 via the Internet 111, the contentserver 106 may determine the KE and communicate via the Internet 111with the DRM license server 118 to obtain the license, the license andthe KE may be sent separately from the key server 305 to the contentserver 106, the content server 106 may determine the KE and the DRMrequirements and generate and/or sign the license, etc. Other examplesabound.

In the illustrated example of FIGS. 32A and 32B, the DRM license server118 and the DRM client 114 may be implemented by any variety of devicescapable of supporting any of a variety of DRM technologies. Example DRMclients 114 include a PC, a portable media player, a media extender, agame playing system, etc.

While in the illustrated examples of FIGS. 32A and 32B the DRM licenseserver 118 is implemented separately from the content server 106, itwill be readily apparent to persons of ordinary skill in the art thatthe content server 106 may implement the DRM license server 118 usingany variety of methods and/or techniques. When the content server 106implements the DRM license server 118, the content server 106 generatesand/or determines the license and embedded key 3235 for the detectedcontent transfer initiation 3205 and provides the same to the DRM client114 as indicated with reference numeral 3245 in FIG. 32A. As describedabove, the license and embedded key 3235 may be determined using anapplicable new and/or previous KE and/or seed determined and/or obtainedby the content server 106 and/or determined and/or provided by the keyserver 350. As also described above, a seed may be a random numberand/or be determined from the content itself, a content identifierand/or license terms using, for example, a cryptographic hash. Moreover,in such an example implementation, the content transfer authorizationrequest 3210 may be skipped if the content server 106 is able todetermine the authorization for the detected content transfer initiation3205 based on a previously determined and/or received KE and/or seed.Furthermore, in such an example implementation where a license may begenerated by a DRM license server associated with a content server, thecontent license may be renewed via the Internet by a remote DRM licenseserver 118 in communication with the remote key server 350, where thelicense and embedded key as indicated with reference numeral 3240 inFIG. 32B, may be determined using an applicable previous KE and/or seeddetermined and/or obtained by and/or from the content server 106 and/ordetermined and/or provided by the key server 350.

FIGS. 33 and 34 illustrate flowcharts representative of exampleprocesses that may be carried out by the content server 106 and the keyserver 350, respectively, to implement the example exchanges of FIGS.32A and 32B and/or, more generally, the example system 100 of FIG. 1.The example processes of FIGS. 33 and 34 may be executed by a processor,a controller and/or any other suitable processing device. For example,the example processes of FIGS. 33 and 34 may be embodied in codedinstructions stored on a tangible medium such as a flash memory, or RAMassociated with a processor (e.g., the processor 8010 shown in theexample processor platform 8000 and discussed below in conjunction withFIG. 35). Alternatively, some or all of the example processes of FIGS.33 and 34 may be implemented using an ASIC, a PLD, a FPLD, discretelogic, hardware, firmware, etc. Also, some or all of the exampleprocesses of FIGS. 33 and 34 may be implemented manually or ascombinations of any of the foregoing techniques, for example, acombination of firmware and/or software and hardware. Further, althoughthe example processes of FIGS. 33 and 34 are described with reference tothe flowcharts of FIGS. 33 and 34, persons of ordinary skill in the artwill readily appreciate that many other methods of implementing thecontent server 106 and the key server 350, respectively, to implementthe example exchanges of FIGS. 32A and 32B and/or, more generally, theexample system 100 of FIG. 1 may be employed. For example, the order ofexecution of the blocks may be changed, and/or some of the blocksdescribed may be changed, eliminated, sub-divided, or combined. Personsof ordinary skill in the art will appreciate that the example processesof FIGS. 33 and 34 may be carried out sequentially and/or carried out inparallel by, for example, separate processing threads.

The example process of FIG. 33 begins with a content server 106 waitingto detect and/or determine a content transfer initiation (block 3305).When a content transfer is initiated (block 3305), the content server106 determines if an applicable encrypted KE is available for thecontent to be transferred (block 3307). If an applicable encrypted KE isnot available (block 3307), the content server 106 sends a contenttransfer authorization request to the key server 350 (block 3310) andwaits to receive an encrypted KE or a seed from which the KE can bedetermined (block 3315).

When the KE or the seed is received (block 3315), a security device(e.g., the security chip 524 of FIG. 5) decrypts the received encryptedKE using the US 2780 or determines the KE from the seed and the EFK 2714and the US 2780 (FIG. 27), respectively (block 3320). For a transfer ofcontent to the DRM client 114, the content server 106 encrypts therequested content with the KE (block 3325) and starts sending theencrypted content to the DRM client 114 (block 3330). The transfer ofthe encrypted content continues until the transfer is complete, iscancelled or interrupted. Returning to block 3315, if the KE or the seedhas not been received, the content server 106 continues waiting. If atimeout occurs while waiting for the KE or the seed (block 3315),control returns to block 3305 to await another content transferinitiation. Additionally, the content server 106 may display any varietyof content transfer error message when a timeout occurs.

Returning to block 3307, if an applicable encrypted KE is available, asecurity device (e.g., the security chip 524 of FIG. 5) decrypts thereceived encrypted KE using the US 2780 or determines the KE from theseed and the EFK 2714 and the US 2780 (FIG. 27), respectively (block3320). For a transfer of content to the DRM client 114, the contentserver 106 encrypts the requested content with the KE (block 3325) andstarts sending the encrypted content to the DRM client 114 (block 3330).The transfer of the encrypted content continues until the transfer iscomplete, is cancelled or interrupted.

Having started sending the encrypted content to the DRM client 114(block 3330), the content server 106 determines if an applicable licensefor the transferred content was previously received (i.e., available)(block 3332). If an applicable license is not available (block 3332),the content server 106 waits to receive a license with the embedded KEfrom the key server 350 (block 3335). When a license (e.g., the license3240 of FIG. 32A) is received (block 3335), the content server 106forwards the license with the embedded KE to the DRM client 114 (block3340). Control returns to block 3305 to wait for another transferrequest. If the license is not received (block 3335), the content server106 continues waiting. If a timeout occurs while waiting (block 3335),the content server 106 stops waiting for the license. Such a timeout mayfacilitate an exchange where the DRM license server 118 provides thelicense and key to the DRM client 114 via, for instance, the Internet111 (e.g., see FIG. 32B).

Returning to block 3332, if an applicable license is available, thecontent server 106 forwards the license with the embedded KE to the DRMclient 114 (block 3340). Control returns to block 3305 to wait foranother transfer request.

The example process of FIG. 34 begins with the key server 350 waiting toreceive a content transfer authorization request from a content server106 (block 3405). When a content transfer authorization request (e.g.,the content transfer authorization request 3210 of FIG. 32A or 32B) isreceived (block 3405), the key server 350 identifies the content server106 and the requesting DRM client 114 from, for example, informationcontained in the transfer request (block 3410). The key server 350 thengenerates a KE for the secure content transfer (block 3415), andidentifies the requested content (block 3420).

The key server 350 sends a content transfer license request to the DRMlicense server 118 (block 3425), sends the KE to the DRM license server118 (block 3430) and sends the requirements for the content transfer tothe DRM license server 118 (block 3435). The key server 350 encrypts andsecurely sends the KE to the content server 106 (block 3440).Alternatively, the key server 350 may send a seed from which the KE maybe determined by the content server 106 (block 3440). The key server 350then determines, using any of a variety of techniques, if the DRMlicense server 118 will provide the license with the embedded key to theDRM client 114 via, for instance, the Internet 111 (block 3445). If theDRM license server 118 will provide the license and key to the DRMclient 114 (block 3445) it does so (block 3447) and control returns toblock 3405 to wait for another transfer request.

If the key server 350 is to forward the license and key to the DRMclient 114 (block 3445), the key server 350 waits to receive the licensefrom the DRM license server 118 (block 3450). When a license is receivedfrom the DRM license server 118 (block 3450), the key server 350forwards (i.e., sends) the license with the embedded key to the contentserver 106 (block 3455). Control returns to block 3405 to wait foranother transfer request. If the license is not received (block 3450),the key server 350 continues waiting. If a timeout occurs while waitingfor the license (block 3450), the key server 350 stops waiting for thelicense. Control then returns to block 3405 to wait for another transferrequest. Additionally, the key server 350 may send an error message tothe content server 106 when a timeout occurs.

While the example flowcharts of FIGS. 33 and 34 illustrate processesthat may be carried out by the content server 106 and the key server350, respectively, to implement the example exchanges of FIGS. 32A and32B, persons of ordinary skill in the art will readily appreciate thatthe order of execution of the blocks may be changed, and/or some of theblocks described may be changed, eliminated, sub-divided, or combined toimplement all or some of the alternatives discussed above in connectionwith FIGS. 32A and 32B. For example: (a) instead of the key server 106sending the encrypted KE 3242 to the content server 106, the key server350 may send a seed that the content server 106 may use in conjunctionwith a decrypted EFK 2714 (FIG. 27) to determine the KE; (b) the contentserver 106 may receive, select and/or determine a seed number to use inconjunction with a decrypted EFK 2714, for determining the value of KEfor encrypting the transferred content, and the key server 350 mayreceive, select and/or determine the same seed number for determiningthe value of KE 3225 to send to the DRM license server 118; (c) the keyserver 350 and DRM license server 118 may renew a license where the keyserver 350 determines the encryption key that was used by the contentserver 106 for an earlier content transfer, and the DRM license server118 renews the license, and sends it to the client 114 via the Internet111 or via the content server 106, where the earlier license may havebeen generated by a remote license server 118 and/or by the contentserver 106; (d) the DRM license server 118 may be implemented by and/orwithin the content server 106. Other examples abound as may berecognized by persons of ordinary skill in the art.

IX. Example Processor Platform

FIG. 35 is a schematic diagram of an example processor platform 8000that may be used and/or programmed to carry out the example processesillustrated in FIGS. 8-10 to implement the example HE 102 of FIGS. 1-3,the example process illustrated in FIG. 15 to implement the examplemethods illustrated in FIGS. 13 and 14, the example processesillustrated in FIGS. 17A-C to implement the example exchange of FIG. 16,the example processes illustrated in FIGS. 19A-C to implement theexample exchange of FIG. 18, the example processes illustrated in FIGS.22A-C and 23A-C to implement the example exchange of FIGS. 20 and 21,respectively, the example processes illustrated in FIGS. 26A-C toimplement the example exchanges of FIGS. 24A and 24B, the exampleprocesses illustrated in FIGS. 29-31 to implement the exampleimplementation of FIG. 27 and/or the example exchange of FIGS. 28A-B,and/or the example processes illustrated in FIGS. 33-34 to implement theexample secure content transfer of FIGS. 32A and 32B. For example, theprocessor platform 8000 can be implemented by one or more generalpurpose microprocessors, microcontrollers, etc.

The processor platform 8000 of the example of FIG. 35 includes a generalpurpose programmable processor 8010. The processor 8010 executes codedinstructions 8027 present in main memory of the processor 8010 (e.g.,within a random access memory (RAM) 8025). The processor 8010 may be anytype of processing unit, such as a microprocessor from the Intel®, AMD®,IBM®, or SUN® families of microprocessors. The processor 8010 may carryout, among other things, the example processes illustrated in FIGS.8-10, FIG. 15, FIGS. 17A-C, FIGS. 19A-C, FIGS. 22A-C, FIGS. 26A-C, FIGS.29-31 and/or FIGS. 33-34.

The processor 8010 is in communication with the main memory (including aread only memory (ROM) 8020 and the RAM 8025) via a bus 8005. The RAM8025 may be implemented by dynamic random access memory (DRAM),Synchronous DRAM (SDRAM), a hard disk drive, flash memory and/or anyother type of RAM device. The ROM 8020 may be implemented by flashmemory and/or any other desired type of memory device. Access to thememory 8020 and 8025 is typically controlled by a memory controller (notshown) in a conventional manner.

The processor platform 8000 also includes a conventional interfacecircuit 8030. The interface circuit 8030 may be implemented by any typeof well-known interface standard, such as an external memory interface,serial port, general purpose input/output, etc.

One or more input devices 8035 and one or more output devices 8040 areconnected to the interface circuit 8030. The input devices 8035 andoutput devices 8040 may be used, for example, to implement interfacesbetween the HE 102 and the CDN 110, the HE 102 and the IRDs 106, the CDN110 and the IRDs 106, and/or between components, devices and/or circuitsimplementing the HE 102, the CDN 110 and/or the IRDs 106.

Although certain example methods, apparatus and articles of manufacturehave been described herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe appended claims either literally or under the doctrine ofequivalents.

1. A system comprising: a content server to encrypt content according toan encryption key, and to transfer the encrypted content, the encryptionkey and a license to a client that supports a digital rights managementtechnology; a broadcast system headend to determine the encryption key,wherein the broadcast system headend is physically separate from thecontent server; and a digital rights management license server toprovide the license.
 2. A system as defined in claim 1, wherein thecontent server implements the digital rights management license server.3. A system as defined in claim 1, wherein the broadcast system headendbroadcasts at least one of a satellite broadcast signal, a wirelessbroadcast signal, a wired broadcast signal, a cable television broadcastsignal, an Ultra High Frequency (UHF)/Very High Frequency (VHF) radiofrequency broadcast signal, a Multi-channel Multi-point DistributionSystem (MMDS) broadcast signal, a Local Multi-point Distribution System(LMDS) broadcast signal, an Internet-based broadcast signal, a cellularbroadcast signal, a power-line broadcast signal, a fiber optic broadcastsignal, or any point-to-point or multicast Internet Protocol (IP)delivery mechanism.
 4. A system as defined in claim 1, wherein thecontent data is at least one of video data, audio data, computer data,interactive data, gaming data, messaging data, or website data.
 5. Asystem as defined in claim 1, wherein the broadcast system headendcomprises: a first interface to receive a content transfer authorizationrequest from the content server; and a key server to determine theencryption key based on at least one of the content transferauthorization request or the specific content; and a second interface tosend the encryption key and a license request to the digital rightsmanagement license server.
 6. A system as defined in claim 1, whereinthe content server comprises a processor to detect a content transferinitiation via at least one of an interface communicatively coupled tothe client, a user interface provided by at least one of the contentserver or the client, a content management application executing in thecontent server, a transfer request from the client, a command from thebroadcast system headend, or a command from the digital rights licenseserver.
 7. A system as defined in claim 6, wherein the content servercomprises an interface to send a content transfer authorization requestto at least one of the key server or the broadcast system headend.
 8. Asystem as defined in claim 1, wherein the content server comprises: aninterface to receive the encryption key; a security device to at leastone of store the encryption key or decrypt an encrypted version of theencryption key; and an encrypter to encrypt the content based on theencryption key.
 9. A system as defined in claim 1, wherein the contentserver is also configured to receive encrypted content from the clientand to decrypt the received content based on a second encryption keyreceived from the broadcast system headend.
 10. A system as defined inclaim 1, wherein the license is provided to the client via at least oneof an Internet-based network, the broadcast system headend or thecontent server.
 11. A system as defined in claim 1, wherein the licenseand the encryption key are provided to the client by the digital rightsmanagement license server.
 12. A method comprising: detecting a contenttransfer initiation at a content server; determining an encryptionsecret for the initiated content transfer at the content server, whereinthe encryption secret is known to a geographically-separate broadcastsystem headend; and encrypting transferred content at the content serverbased on the encryption secret.
 13. A method as defined in claim 12,wherein determining the encryption secret for the initiated contenttransfer comprises: sending a content transfer authorization request tothe geographically-separate broadcast system headend; and receiving theencryption secret for the initiated content transfer from thegeographically-separate broadcast system headend at the content server.14. A method as defined in claim 13, further comprising skipping thesending of the content transfer authorization request and the receivingof the encryption secret if an encryption secret applicable to theinitiated content transfer is already available, wherein the transferredcontent is encrypted with the already available encryption secret.
 15. Amethod as defined in claim 14, wherein the already available encryptionsecret was previously received from the geographically-separatebroadcast system headend.
 16. A method as defined in claim 12, whereindetermining the encryption secret for the initiated content transfercomprises obtaining or generating a seed value that is also available atthe geographically-separate broadcast system headend.
 17. A method asdefined in claim 16 wherein the seed comprises at least one of a contentidentifier, a license term, a hashed value of the content identifier, ahashed value of the license term, or a hashed value of a plurality oflicense terms.
 18. A method as defined in claim 12, further comprising:determining a content transfer license based on the encryption secret atthe content server; and sending the content transfer license to aclient.
 19. A method as defined in claim 12, wherein the contenttransfer request is detected via at least one of an interfacecommunicatively coupled to a client, a user interface provided by atleast one of the content server or the client, a content managementapplication executing in the content server, a transfer request from theclient, a command from the broadcast system headend, or a command from adigital rights license server.
 20. A method as defined in claim 12,further comprising: receiving a content transfer license; and forwardingthe content transfer license to a client.
 21. A method as defined inclaim 12, wherein the content is transferred from a client to a contentserver.
 22. A method as defined in claim 12, wherein the content istransferred from a content server to a client.
 23. A method as definedin claim 12, further comprising: determining a code word based on theencryption secret, wherein the encryption secret is a seed; andencrypting the transferred content with the code word.
 24. A method asdefined in claim 23, further comprising sending the seed to thebroadcast system headend.
 25. A method comprising: receiving a contenttransfer authorization request; determining an encryption secret for thecontent transfer authorization request; sending the encryption secret toa geographically-separate content server; and sending a content transferlicense request to a digital rights management license server.
 26. Amethod as defined in claim 25, wherein the encryption secret is at leastone of an encryption code word or a seed, wherein the seed may be usedto determine the encryption code word.
 27. A method as defined in claim25, further comprising: receiving a seed from thegeographically-separate content server, the seed used to determine theencryption secret; and skipping the sending of the encryption secret tothe geographically-separate content server.
 28. A method as defined inclaim 25, wherein the content transfer authorization request is receivedfrom the geographically-separate content server.
 29. A method as definedin claim 25, further comprising encrypting the encryption secret.
 30. Amethod as defined in claim 25, wherein sending the content transferlicense request comprises sending at least one of a content identifier,the encryption secret or content transfer requirements
 31. A method asdefined in claim 25, further comprising: receiving a content transferlicense; and forwarding the content transfer license.
 32. A method asdefined in claim 31, wherein the content transfer authorization requestis received from the geographically-separate content server, wherein thecontent transfer license is received from the digital rights managementlicense server, and wherein the content transfer license is forwarded tothe geographically-separate content server.
 33. A method comprising:receiving a license renewal request for previously transferred content;determining an encryption secret used to encrypt the previouslytransferred content; and renewing a content transfer license based onthe determined encryption secret.
 34. A method as defined in claim 33,wherein the encryption secret is at least one of an encryption code wordor a seed, wherein the seed may be used to determine the encryption codeword.
 35. A method as defined in claim 33, further comprising receivinga seed from a geographically-separate content server, the seed used todetermine the encryption secret.
 36. A method as defined in claim 35,wherein the seed was previously received from thegeographically-separate key server.
 37. A method as defined in claim 33,wherein the seed is determined at a content server.
 38. A method asdefined in claim 33, wherein the seed comprises at least one of acontent identifier, a license terms, a hashed value of the contentidentifier, a hashed value of the license term, or a hashed value of aplurality of license terms.
 39. A method as defined in claim 33, whereinthe license renewal request is received from a geographically-separatecontent server.
 40. A method as defined in claim 33, wherein at leastone of receiving the license renewal request or renewing the contenttransfer license is performed at a content server.
 41. An article ofmanufacture storing machine readable instructions which, when executed,cause a machine to: detect a content transfer initiation at a contentserver; determine an encryption secret for the initiated contenttransfer at the content server, wherein the encryption secret is knownto a geographically-separate broadcast system headend; and encrypttransferred content at the content server based on the encryptionsecret.
 42. An article of manufacture as defined in claim 41, whereinthe machine readable instructions, when executed, cause the machine todetermine the encryption secret for the initiated content transfer by:sending a content transfer authorization request to thegeographically-separate broadcast system headend; and receiving theencryption secret for the initiated content transfer from thegeographically-separate broadcast system headend at the content server.43. An article of manufacture as defined in claim 41, wherein themachine readable instructions, when executed, cause the machine todetermine the encryption secret for the initiated content transfer byobtaining or generating a seed value that is also available at thegeographically-separate broadcast system headend.
 44. An article ofmanufacture as defined in claim 41, wherein the machine readableinstructions, when executed, cause the machine to: determine a contenttransfer license based on the encryption secret at the content server;and send the content transfer license to a client.